如何为iOS原生移动应用程序自动化处理默认系统生成的弹出窗口



我正在为本机应用程序进行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.sleepautoAcceptAlerts所需能力true的组合时,这对我有效。

在所需的功能字典中添加以下内容。

'waitForAppScript': '$.delay(5000); true',
'autoAcceptAlerts': True

最新更新