【问题标题】:How to handle default system generated pop ups for iOS native mobile application automation?如何为 iOS 原生移动应用程序自动化处理默认系统生成的弹出窗口?
【发布时间】:2015-11-11 06:21:02
【问题描述】:

我正在为 Native 应用程序进行 ios Mobile 自动化测试。

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

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

我也尝试过设置以下功能,但这不起作用: 能力类型.ACCEPT_SSL_CERTS,真) CapabilityType.SUPPORTS_ALERTS,真) "autoAcceptAlert`

我正在使用 Java + Appium + Web Driver +Sikuli。

请帮助解决这个问题。

【问题讨论】:

  • 请详细说明
  • 如果您不想使用此功能,可以关闭定位服务。这样应用就不会请求用户许可。

标签: ios


【解决方案1】:

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

【讨论】:

  • HI Tiny,我尝试使用“autoAcceptAlerts”,但这不起作用。是否有任何其他功能类型可以处理这个问题。请帮助!
  • 设置locationServicesAuthorized
  • 我尝试使用 locationServicesAuthorized :true 但在这种情况下我无法初始化驱动程序对象。驱动程序对象为空。有没有其他方法可以使用 locationServicesAuthorized 。
【解决方案2】:

系统生成的弹出窗口应该包含可以使用 Appium Inspector 找到的 xpath 等。

只需单击该弹出窗口上的必要按钮,通过提供该按钮的 xpath 以使其关闭。

【讨论】:

  • 我和这个问题的原始发帖人有同样的问题。问题是当应用程序通过 Inspector 启动时,它不会显示在检查器/记录器中,直到警报(“请允许通知”已被手动接受。)设置功能(autoAcceptAlert 不适用于这些系统或操作系统级别通知)
【解决方案3】:

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

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

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

希望对你有帮助

【讨论】:

    【解决方案4】:

    我曾经遇到过这个讨厌的问题。恐怕要说,经过大量的努力,我发现没有办法解决这个问题,除了 iOS 应用程序的开发人员实际上必须延迟该弹出窗口以在应用程序启动后几秒钟而不是立即显示。然后只有autoAcceptAlerts 有效。如果弹出窗口在启动时正确显示,即使 autoAcceptAlerts 对我也不起作用。

    【讨论】:

      【解决方案5】:

      当我在测试开始时设置Thread.sleepautoAcceptAlerts 所需功能true 的组合时,这对我有用。

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-07-17
          • 2018-01-31
          • 1970-01-01
          • 2017-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多