首页 > 解决方案 > 如何在 RemoteWebdriver 上设置 commandTimeout?

问题描述

如何在 Selenium 中为 RemoteWebdriver 设置 commandTimeout?

如果我在 ChromeDriver 上做同样的事情,我会做类似的事情:

var service = ChromeDriverService.CreateDefaultService(driverPath);
var options = new ChromeOptions();
driver = new ChromeDriver(service, options, TimeSpan.FromSeconds(120));

..但是当我使用 RemoveWebdriver 时,这相当于什么?我的第一个猜测是使用类似的东西:

var capabilities = DesiredCapabilities.Chrome();
capabilities.SetCapability("Capability-name-here",  TimeSpan.FromSeconds(120));
driver = new RemoteWebDriver(testserver, capabilities);

但是我找不到任何关于可以设置哪些功能以及我应该将什么字符串/对象传递给 .SetCapability 的文档。

标签: c#selenium-webdriver

解决方案


for 的构造函数RemoteWebDriver一个带超时参数的重载。所以远程等价物是:

var options = new ChromeOptions();
var driver = new RemoteWebDriver(testserver, options.ToCapabilities(), TimeSpan.FromSeconds(120);

请注意,此超时适用于本地 .NET 绑定代码和 Java 远程 Selenium 服务器之间的 HTTP 请求。它可能会也可能不会影响 Selenium 服务器与其本地 chromedriver.exe 实例之间的命令超时。


推荐阅读