Java 如何使用Appium处理iOS更新警报

Java 如何使用Appium处理iOS更新警报,java,iphone,appium,ios-ui-automation,appium-ios,Java,Iphone,Appium,Ios Ui Automation,Appium Ios,我将Selenium与Appium一起使用,我的测试在Android和iOS real设备上运行。当iOS空闲时,在android上运行一组测试。然后,测试切换到iOS。两个设备同时连接 下面是我使用testNG运行的套件的顺序: <suite-file path="android_Suite1.xml" /> <suite-file path="ios_Suite1.xml" /> <suite-file path="android_Suite2.xml" /&g

我将Selenium与Appium一起使用,我的测试在Android和iOS real设备上运行。当iOS空闲时,在android上运行一组测试。然后,测试切换到iOS。两个设备同时连接

下面是我使用testNG运行的套件的顺序:

<suite-file path="android_Suite1.xml" />
<suite-file path="ios_Suite1.xml" />
<suite-file path="android_Suite2.xml" />
<suite-file path="ios_Suite2.xml" />
<suite-file path="android_Suite3.xml" />
<suite-file path="ios_Suite3.xml" />

这里的问题是,当测试切换到android时,iOS设备显示os更新安装弹出窗口。我想在测试切换回iOS之前禁用弹出窗口。我可以从设置>存储中删除更新。但是测试会在一夜之间运行,并且有可能再次下载更新。 由于这是一个系统警报,测试不会启动,因为appium找不到主屏幕时未创建任何会话。因此,这些功能也不起作用。
需要帮助来处理这个特定的弹出窗口。

我不确定能否给你一个确切的解决方案,但你可以制作一个双线程系统,一个用于Android,一个用于iOS。然后,在另一个线程进行测试时,只输出每个线程。要做到这一点,您需要运行两个Appium实例(不同的端口)

然后根据具体功能,使用以下方法之一解决:

1) 然后每次跑步都有一个驱动程序。在这一点上,您可以在iOS端输入您的逻辑,以便始终关闭/接受警报

2) 你可以在iOS线程上有一个线程干,它每隔“x”秒检查软件弹出窗口,如果发现,就关闭它


我在android上遇到了一个类似的异步弹出窗口问题,我使用选项(2)解决了这个问题。你的问题似乎比我必须处理的问题更棘手。希望这能让你从一个好的解决方案开始!很抱歉回答不明确。

首先,如果已下载更新,则需要删除下载的更新,然后必须关闭自动更新,如下所示

默认情况下会启用自动更新,因此您需要将其关闭。这对当前的更新没有帮助,但它将阻止您在将来获取这些消息。因此,您应该做的第一件事是深入了解设置并关闭自动更新:

  • 点击设置
  • 点击iTunes和应用商店
  • 将“自动下载”下的更新设置为关闭

  • 这将阻止iOS将来下载更新,尽管您仍然需要处理已下载的更新。

    弹出窗口包含元素,您可以单击“确定”/“取消元素”。您的问题到底是什么?是的,但软件升级弹出窗口没有“确定/取消”。它有Install/Later/。。另外,除非创建iOSdriver,否则无法访问此弹出窗口。谢谢@JaysonP。我将尝试这种方法并在评论中更新:)