使用 Appium 自动化应用程序时自动关闭 iOS 警报

Automatically dismiss iOS Alerts when automating an app with Appium

我在 Cucumber 自动化框架中使用 Ruby 来自动化我的 Android 和 iOS 应用程序。我正在使用 Appium 1.6.4 beta,因为它支持 iOS 10.2.

当 Appium 服务器首次在设备上安装 iOS 应用程序时,系统会提示一个警告对话框,询问我是否要允许通知。据我所知,Appium 的 "autoAcceptAlerts" 功能目前无法使用。

我的主要问题是如何检查警报对话框是否存在,然后使用 find_element 之类的东西按下 "Allow" 按钮但不必编辑我的功能文件。有没有一种方法可以使用我的 "Log in as an Existing User" 步骤来检查警报并在存在时将其关闭,如果不存在则继续登录流程?

我尝试使用 find_element(确定按钮的 xpath)。存在吗?发表 if/else 声明,但我认为我只是做错了。如果警报不存在,则该步骤失败并且我的测试 运行 停止。

如果这个问题在她的某个地方得到了回答,我很抱歉,但我自己一直无法为这个问题找到一个好的答案。感谢您提供的任何帮助。

根据 Appium 团队的文档,自动接受所有对话框所需的功能似乎已损坏。因此,我对操作进行了硬编码,而不是依赖于 appium。也许下个版本会修复这个问题。

您可以使用@driver.switch_to.alert.accept 接受或使用@driver.switch_to.alert.dismiss 关闭警报。 如果您不确定警报,请使用 begin/rescue 处理异常