驱动程序实例必须符合W3C规范,以支持在使用ImplicitWait

时间:2019-05-14 11:29:04

标签: selenium selenium-webdriver webdriver implicitwait

我正在尝试使用ChomeDriver和Selenium设置隐式等待,但是我收到一条错误消息。

该行为还在于未设置超时,默认为60秒。

Driver instance must comply with the W3C specification to support getting timeout values.
at OpenQA.Selenium.Remote.RemoteTimeouts.ExecuteGetTimeout(String timeoutType)\r\n   at OpenQA.Selenium.Remote.RemoteTimeouts.get_ImplicitWait()"

我正在使用Selenium.WebDriver 3.141.0

1 个答案:

答案 0 :(得分:-1)

此错误消息...

OpenQA.Selenium.Remote.RemoteTimeouts.ExecuteGetTimeout(String timeoutType)\r\n at OpenQA.Selenium.Remote.RemoteTimeouts.get_ImplicitWait()

...暗示用于诱导 ImplicitWait 的语法不正确。

根据Support W3C WebDriver Set Timeouts format前面的讨论,Set Timeouts命令期望数据格式如下:

{
  implicit: 59,
}

但是根据W3C WebDriver,可以同时设置多个超时时间,如下所示:

{
  implicit: 123,
  pageLoad: 234,
  script: 456,
}

您的代码试用本可以帮助我们以更好的方式调试您的问题。也许您是按照先前的格式诱导 ImplicitWait 的:

driver.Manage().Timeouts().ImplicitWait = waitTime;

因此您会看到错误。


解决方案

要诱导 ImplicitWait ,您需要遵循以下格式:

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

Outro