我正在为本机应用程序进行ioS Mobile自动化测试。
在模拟器中打开应用程序时,我收到系统生成的位置警报"…希望使用您的当前位置"。我无法使用Selenium处理此问题,因为我无法使用Inspector捕获此警报框。
有没有任何方法可以在功能的帮助下(在设置功能时)处理此问题。
我还尝试设置以下功能,但这不起作用:能力类型.ACCEPT_SSL_CERTS,true)CapabilityType.SUPPORTS_ALERTS,true)"自动接受警报`
我使用的是Java+Appium+Web Driver+Sikuli。
请帮忙。
应该能够将其设置为所需的功能capabilities.setCapability("autoAcceptAlerts", true);
系统生成的弹出窗口应该具有可以使用Appium Inspector找到的xpath等。
只需点击弹出窗口上的必要按钮,为该按钮提供xpath,使其关闭。
我今天在选择允许推送通知的警报时遇到了同样的问题。我通过从Appium.app运行应用程序并使用检查器访问元素来解决这个问题。(我之前使用appium-ruby控制台启动它)。
要从appium.app运行,请单击Apple单选按钮打开设置页面。在这里设置要安装的.app文件和要运行的设备。启动Node服务器并按下检查器按钮。生成的Java代码如下:
driver.findElement(By.name("OK")).click();
希望这能帮助
我曾经遇到过这个讨厌的问题。我恐怕要说,经过大量的努力,我没有找到解决这个问题的方法,除了iOS应用程序的开发人员实际上不得不推迟弹出窗口,以便在应用程序启动后几秒钟出现,而不是立即出现。那么只有autoAcceptAlerts
起作用。即使是autoAcceptAlerts
也不适用于我,如果弹出窗口显示在启动时。
当我在测试开始时设置Thread.sleep
和autoAcceptAlerts
所需能力true
的组合时,这对我有效。
在所需的功能字典中添加以下内容。
'waitForAppScript': '$.delay(5000); true',
'autoAcceptAlerts': True