Selenium WebDriver бросает WebDriverTimeoutException на RemoteWebElement.Щелчок()
у меня есть ошибка с щелчками, которые трудно воспроизвести. 1-2/10000 кликов заканчивается OpenQA.Selenium.WebDriverTimeoutException
.
Похоже, элемент не был нажат, и водитель ждет какой-то реакции.
Message: timeout: cannot determine loading status
from timeout: Timed out receiving message from renderer: -0.028
(Session info: chrome=52.0.2743.116)
(Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.3.9600 x86_64)
Stack trace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebElement.Execute(String commandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebElement.Click()
иногда тайм-аут в сообщении об исключении выглядит законным (300 секунд), но в большинстве случаев он имеет отрицательное значение, такое как -0.028.
я использую:
Chrome 52.0.2743.116
Selenium 2.53.1
ChromeDriver 2.23 (also produces with 2.22)
обновление:
я начал получать эту ошибку также на RemoteNavigator.GoToUrl
Type: OpenQA.Selenium.WebDriverTimeoutException
Message: timeout: cannot determine loading status
from timeout: Timed out receiving message from renderer: -0.032
(Session info: chrome=52.0.2743.116)
(Driver info: chromedriver=2.23.409699 (49b0fa931cda1caad0ae15b7d1b68004acd05129),platform=Windows NT 6.3.9600 x86_64)
Stack trace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.set_Url(String value)
at OpenQA.Selenium.Remote.RemoteNavigator.GoToUrl(String url)
3 ответов
маленький пик в исходный код Селена покажет, что каждое действие на WebElement
или infact любое взаимодействие Селена вызовет execute(String driverCommand, Map<String, ?> parameters)
of класс RemoteWebDriver
Это выполнит команду через CommandExecutor
интерфейс который реализуется различными драйверами
ChromeDriver также реализует это, и вы видите эту ошибку из-за ошибки, которую команда chromium знает и работает. пожалуйста, проверьте информацию об ошибке здесь.
частота ошибок снизилась с Chromedriver v2.23 но это все еще происходит, но редко
решил это, уменьшив степень параллелизма моего тестового бегуна с 30 до 10. Похоже, чрезмерное использование CPU по какой-то причине приводит к тому, что запросы не достигают веб-драйверов.
Я нашел причину проблемы, по крайней мере в моем случае. Мы проводили тесты Селена на машине Дженкинса, которая использовала прокси-сервер. Мы столкнулись с этой проблемой только тогда, когда мы включили ведение журнала для всех. Известно, что websockets не работают с прокси, а chromedriver использует websockets для извлечения журналов браузера. Поэтому мы прокси отключен и проблема решена.