我正在声明我的硒web驱动器参考:
var driver = new FirefoxDriver(service,
new FirefoxOptions {
BrowserExecutableLocation = "XXXX",
Profile = firefoxProfile,
UseLegacyImplementation = true },
new TimeSpan(0, 1, 30));
它有99%的时间工作很棒,但是在某些情况下,我想将默认的" CommandTimeout"更改为90秒以外的其他情况。如何在不重新定义驾驶员的情况下执行此操作?
我已经探索了以下类的所有方法/属性,并且似乎没有任何改变有任何效果:
driver.Manage().Timeouts()
也有这篇文章,但与" CommandTimeout"无关。有这个,在创建驾驶员之后并没有真正覆盖。有关硒超时的大多数帖子都与隐式等待或其他各个超时有关,而不是驾驶员声明中指定的超时值。
为什么之后需要设置commandTimeout
?实际上,这只是驱动程序不再响应的备份。它与自己驾驶浏览器无关。
查看硒源代码,您可以看到commandTimeout
参数传递到RemoteWebdriver.ICommandExecutor
字段,即private
。这意味着,在初始化之后,无法再访问或更改命令超时。
非常骇人听闻的,当然不建议使用"解决方案",因为这可能是使用反射来访问该属性。但是,这肯定不建议这样做,因为它在很大程度上取决于您使用的驱动程序,因此可以随时破裂。
如果您偶尔需要大量超时,通常最好将commandTimeout
设置为高价值,并使用ImplicitWait
&公司