2014-09-26 17 views
0

我正在为Native应用程序进行ioS Mobile自动化测试。如何处理默认系统生成的iOS原生移动应用程序自动弹出窗口?

我得到一个系统生成的位置警报“...想使用您的当前位置”,同时在模拟器中打开应用程序。我无法使用Selenium处理此问题,因为我无法使用Inspector捕获此警报框。

有什么办法可以借助功能来处理这个问题(同时设置功能)。

我自己也尝试设置下面的功能,但是这是行不通的: 能力 - type.ACCEPT_SSL_CERTS,真) CapabilityType.SUPPORTS_ALERTS,真) “autoAcceptAlert`

我使用Java + Appium +网络驱动程序+ Sikuli。

请这方面的帮助。

+0

请详细解释 – iOSdev 2014-09-26 09:32:52

+0

如果您不想使用此功能,可以关闭位置服务。这种方式的应用程序不会问用户的权限。 – 2014-09-26 09:34:30

回答

0

应该可以将其设置为desired capabilities capabilities.setCapability("autoAcceptAlerts", true);

+0

HI小Tiny,我尝试过使用“autoAcceptAlerts”,但这不起作用。是否有任何其他能力类型可以用来处理这个问题。请帮忙! – 2014-09-30 05:34:21

+0

设置'locationServicesAuthorized' – TinyTimZamboni 2014-09-30 21:43:05

+0

我试过使用locationServicesAuthorized:true,但在这种情况下,我无法初始化驱动程序对象。驱动程序对象为null。是否有任何其他方式使用locationServicesAuthorized。 – 2014-10-06 10:38:51

0

我偶然遇到过这个讨厌的问题。我不敢说,经过很多努力,我发现没有办法解决这个问题,只是iOS应用程序的开发人员实际上必须延迟该弹出窗口,以便在应用程序启动后几秒钟而不是立即显示。那么只有autoAcceptAlerts的作品。即使autoAcceptAlerts不适用于我,如果弹出窗口显示正确启动。

0

系统生成弹出应该有xpaths等可以找出使用Appium Inspector。

只需在弹出的按钮上单击该按钮,即可为该按钮提供xpath以使其关闭。

+0

我遇到与此问题的原始海报相同的问题。问题是,当应用程序通过Inspector启动时,它将不会显示在检查器/记录器中,直到警报(“请允许通知”已被手动接受。)设置功能(autoAcceptAlert不适用于这些系统或OS级别通知) – Cen92 2014-11-10 11:59:21

0

我今天有同样的问题,选择一个允许推送通知的警报。我通过从Appium.app运行应用程序并使用检查器访问元素来解决此问题(我之前使用appium ruby​​控制台启动它)。

要从appium.app运行,请单击Apple单选按钮以调出设置页面。这里设置要安装的.app文件和要运行的设备。启动节点服务器并按巡视按钮。已生成的Java代码如下:

driver.findElement(By.name("OK")).click(); 

希望这有助于

0

这个工作对我来说,当我设置的Thread.sleep组合在测试开始和autoAcceptAlerts所需的能力true

0

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

'waitForAppScript': '$.delay(5000); true', 
'autoAcceptAlerts': True 
相关问题