Экземпляр драйвера должен соответствовать спецификации 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);

Outro

Другие вопросы по тегам