我需要在测试过程中等待5分钟,但是Appium会话具有默认的newCommandTimeout of 60s.,并且在下一个命令我的会话超时的情况下出现异常。
AndroidDriver appiumDriver = new AndroidDriver(new URL(getMcmUrl()), capabilities);
Thread.sleep(5*60*1000); // 5 minutes sleep time
appiumDriver.executeScript("...")
答案 0 :(得分:3)
newCommandTimeout:
在假设客户端退出并结束会话之前,Appium将等待客户端发出新命令的时间(以秒为单位)
如果超时为60s,则您需要至少每分钟执行一次命令以保持会话存活。
例如,这就是5分钟睡眠的样子
for (int i = 0; i < 5; i++) {
driver.getOrientation(); // execute some command to keep the session alive
Thread.sleep(59*1000); // wake up before session expired
}
阅读本文以获取更多信息
https://l18.me/how-to-keep-alive-appium-driver-da9227b2fa
答案 1 :(得分:1)
尝试使用此命令
“ cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT,” 100“);”
通过此命令,appium服务器将在关闭前等待100秒以执行命令。您可以根据自己的喜好增加超时时间。
答案 2 :(得分:1)
在您的 DesiredCapabilities 中添加 newCommandTimeout 功能。
DesiredCapabilities caps=new DesiredCapabilities();
//other desired caps
//add the following line
caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 300);
//then define your driver here
AppiumDriver<MobileElement> driver= new AndroidDriver(new URL(getMcmUrl()), caps);
newCommandTimeout表示在假设客户端退出并结束会话之前,Appium将等待客户端发出新命令的时间(以秒为单位)。
300秒= 5分钟
答案 3 :(得分:0)
您是否考虑过并且不考虑重写newCommandTimeout?那当然可以,但是有缺点。