0

所以我想要做的就是单击仅在 iOS 模拟器上弹出的对话框(iOS 14.5,Appium Java-Client 7.3.0)。

该对话框来自 Anyline,因为我当然在模拟器上没有摄像头。如果有任何方法可以隐藏此对话框,它也可以解决我的问题,我尝试使用功能但它不起作用。

cap.setCapability("autoAcceptAlerts", false);
cap.setCapability("autoDismissAlerts", false);

选择对话框没问题,我可以检查对话框是否在这里:

@iOSXCUITFindBy(accessibility = "Anyline SDK cutout UI")
public IOSElement anylineDialog;

这是它的样子:

在此处输入图像描述

所以下一步就是单击它在开始时工作的 ok 按钮,但现在我什至不能在 Appium Inspector 中选择它了。在我刚刚使用这个之前:

@iOSXCUITFindBy(accessibility = "OK")
public IOSElement okButton;

我不知道为什么它不再工作了,但我仍然可以在 TestProject 的帮助下选择它。我测试了很多不同的选择器,但没有奏效。(此工具也推荐使用accessibility =“OK”的那个)

我总是得到这个异常,我不知道如何修复它,try catch 也不起作用:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: *** -[__NSArrayM insertObject:atIndex:]: object cannot be nil

我尝试了这个页面上的东西,我也得到了 OK 按钮作为这个代码片段显示的唯一按钮。

HashMap<String, String> args = new HashMap<>();
args.put("action", "getButtons");
List<String> buttons = (List<String>)driver.executeScript("mobile: alert", args);

同样来自同一个站点,我尝试了相同的结果。

args.put("action", "accept");
args.put("buttonLabel", "OK");
driver.executeScript("mobile: alert", args);

也许这是具体的,但如果有人知道我如何解决它,我将非常感激。

4

1 回答 1

1

您提到的 iOS 错误已在 Appium 1.22.1 和 2.0.0-beta 中修复。确保您正在运行其中一个版本,您应该没问题。

于 2022-01-03T12:32:15.480 回答