【问题标题】:How to force webdriver to install app before launching it如何在启动之前强制 webdriver 安装应用程序
【发布时间】:2016-06-22 14:55:44
【问题描述】:

我最近遇到了一个关于在运行测试之前在设备上安装/更新应用程序的问题。

driver.init(desired)

似乎在初始化新会话时,如果未安装该应用程序,它将安装它。但是,如果已安装旧版本的应用程序,则不会对其进行更新。

it('initialise appium session', function(){
    return actionsManager.startSession(desired);
});

it('installs app', function(){
    return actionsManager.installApp(context.desired.app);
});

我已经尝试了上面的代码,但它首先启动了应用程序,然后似乎没有安装应用程序(我可以在 appium 端看到日志,它立即回复状态 200)。

理想情况下,测试会首先清理当前应用,安装新应用,最后启动它。有人可以给我一个关于如何做到这一点的线索吗?谢谢!

ps:我使用 mocha 作为测试运行器,并在 webdriver 端使用 javascript 绑定。 Appium 服务器在 Mac 上运行,我正在从 PC 启动脚本。

【问题讨论】:

  • 尝试使用功能 fullReset。将其设置为 true。
  • 感谢 Michael,这让我发现实际上 appium 服务器是在几个月前使用 --no-reset 参数启动的。看起来它最终成为椅子和键盘之间的问题:D

标签: javascript node.js webdriver appium


【解决方案1】:

问题在于 appium 服务器已使用“--no-reset”参数启动。

Appium 的默认行为是在每次新会话时更新应用程序。 “--no-reset”标志阻止它这样做。我最初在我的开发机器上使用它,以便我可以减少每次测试的等待时间。

所以最后代码中没有什么具体的事情要做,只是appium服务器配置的问题。

注意:这个标志似乎将在 appium 1.5 see documentation 上被弃用。 仍然可以通过使用新的“–default-capabilities”标志来设置此行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 2011-03-11
    相关资源
    最近更新 更多