我们正在使用第三方提供商针对我们此处没有的浏览器和设备运行一些Selenium测试。其中一个是iPad。
目前我们使用Ruby中的代码打开/实例化webdriver:
driver = Selenium::WebDriver.for(:remote, :url => url, :desired_capabilities => capabilities)
如果我们正在启动Chrome或FireFox实例,那么在针对此第三方服务运行时效果很好。然而,对于iOS,他们使用iOS模拟器启动虚拟机,并且在sim的浏览器准备好之前,上面的调用通常会超时。他们已经承认他们的VM启动时间可能更好。
但事实就是如此。就实际的后续步骤而言,有一种方法可以在创建远程webdriver时自定义超时值吗?
答案 0 :(得分:1)
您使用的第三方是什么?是不是偶然的SauceLabs?
我不确定这是否会普遍适用,但您应该能够在所需的功能对象上设置超时配置。这是我在java中的测试项目中的一些示例代码:
/**
* Sets the default capabilities for the RemoteWebDriver we use for SauceLabs
*
* @param capabilities the capabilities to set defaults to
* @return the DesiredCapabilities object after setting the default values
*/
private static DesiredCapabilities setDefaultCapabilities(DesiredCapabilities capabilities)
{
// Set job some defaults
capabilities.setCapability("max-duration", DEFAULT_TEST_TIMEOUT);
capabilities.setCapability("command-timeout", DEFAULT_COMMAND_TIMEOUT);
capabilities.setCapability("idle-timeout", DEFAULT_IDLE_TIMEOUT);
capabilities.setCapability("selenium-version", DEFAULT_SELENIUM_VERSION);
// Additional settings to help debugging and improve job perf
capabilities.setCapability("public", "share");
capabilities.setCapability("webdriver.remote.quietExceptions", false);
capabilities.setCapability("capture-html", true);
capabilities.setCapability("video-upload-on-pass", false);
return capabilities;
}
以下是功能的SauceLabs文档:https://docs.saucelabs.com/reference/test-configuration/