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

时间:2016-09-08 07:09:43

标签: java iphone appium ios-ui-automation appium-ios

我正在使用Selenium和Appium,我的测试在Android和iOS真实设备上运行。在iOS闲置时,在Android上运行一组测试。然后测试切换到iOS。两个设备同时连接。

以下是我使用testNG运行的套件序列:

Button button = (Button) findViewById(R.id.button1);

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        handler.removeCallbacks(runnable);
        // do your Button stuff
        anotherMethod();
    }
});

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

2 个答案:

答案 0 :(得分:0)

不确定我能给你一个确切的解决方案,但你可以建立一个双线程系统,一个用于Android,一个用于iOS。然后在另一个测试的时候产生每个线程。您将需要运行两个Appium实例来执行此操作(不同的端口)。

然后根据确切的功能解决以下方法之一:

1)然后每个跑步都有一个驱动程序。那时你可以在iOS端加入你的逻辑来总是解除/接受警报。

2)你可以从iOS线程中找到一个线程,用于检查软件弹出窗口' x'秒,然后如果发现解雇它。

我在android上的异步弹出窗口有类似的问题,我使用选项(2)来解决。你的问题似乎比我必须处理的问题更有问题。希望这可以让你开始有一个很好的解决方案!对不起,这个含糊不清的答案。

答案 1 :(得分:0)

首先,您需要删除下载的更新(如果已经下载),那么您必须关闭自动更新,如下所示。

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

  1. 点按设置。
  2. 点击iTunes& App Stores。
  3. 将“自动下载”下的更新设置为关闭。
  4. 这将阻止iOS将来下载更新,但您仍需要处理已下载的更新。