Call to 'tap' failed. An unknown server-side error occurred. Original error: *** - [__ NSArrayM insertObject: atIndex:]: object cannot be nil"

Call to 'tap' failed. An unknown server-side error occurred. Original error: *** - [__ NSArrayM insertObject: atIndex:]: object cannot be nil"

我正在使用 Appium 桌面(应用程序版本:1.22.0)、iOS 模拟器和真实 iPhone 建立会话并与应用程序交互。连接建立成功,我可以通过 Appium 与应用程序交互,除非出现弹出窗口;在这种情况下,当我尝试点击弹出按钮时,会出现此错误:

"Call to 'tap' failed. An unknown server-side error occurred while processing the command. Original error: *** - [__ NSArrayM insertObject: atIndex:]: object cannot be nil"

此错误仅在我尝试通过 Appium 执行“点击”时发生。我可以在模拟器或 iPhone

上手动执行点击

我在网上看了好几条评论,有人说他们通过卸载和安装 Appium 或使用不同的版本解决了这个问题。对我没有任何作用,我尝试了 Appium 1.20.2、1.21.0 和 1.22.0,但问题仍然存在。 我仍在调查此问题,但我 运行 资源不足。如果你遇到过或者你知道如何解决,请与我分享信息。

非常感谢

我通过 npm 安装 Appium v​​1.22.2 并在该路径上设置 Appium-WebDriverAgent 解决了这个问题。我不知道这是否是理想的解决方案,但它对我有用。 谢谢!

与Appium v​​1.22.2或以下版本无关。下面的代码将起作用。如果您在 webview 屏幕上,只需切换到本机视图并使用 TouchAction class 在屏幕上执行点击操作。

    switchContextBasedOnString("NATIVE_APP");
    
    Point p = iosDriver.findElement(findBy("allowElement")).getCenter();
    int x = p.getX();
    int y = p.getY();
    TouchAction action = new TouchAction(iosDriver);
    action.tap(PointOption.point(x, y)).perform();