Экземпляр драйвера должен соответствовать спецификации W3C для поддержки ошибки получения значений времени ожидания при использовании 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 ответ
Это сообщение об ошибке...
OpenQA.Selenium.Remote.RemoteTimeouts.ExecuteGetTimeout(String timeoutType)\r\n at OpenQA.Selenium.Remote.RemoteTimeouts.get_ImplicitWait()
... подразумевает, что синтаксис, используемый для вызова ImplicitWait, был неправильным.
Согласно обсуждению в разделе Поддержка W3C WebDriver Set Timeouts формат ранее, команда 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);