ОШИБКА: inspector_emulator_agent.cc (477) Может включать виртуальное время только для страниц, но не для рабочих при выполнении теста через Selenium и ChromeDriver - PullRequest
0 голосов
/ 22 октября 2018

Я использовал Selenium с Python (и Chrome, с chromedriver), чтобы успешно автоматизировать взаимодействие с веб-сайтом, но недавно мой скрипт перестал работать.

Я сузил его до одной строки, до которой доходит сценарий, но потом не дальше - и больше ничего не происходит.Нет ошибки, независимо от того, как долго я жду.Скрипт просто там висит.

Строка такая:

start_text_area = driver.find_element_by_id('startDate')

После некоторого поиска я подумал, что ситуация может помочь, если я попробую использовать тайм-аут, поэтому я попробовал этот код:

 try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "startDate"))
        )
finally:
    driver.quit()

Но это дало тот же результат: ничего не произошло, хотя я немного подождал.

Как я уже говорил, это работало до самого недавнего времени.Я не знаю, изменился ли сайт, который я использовал.

Я должен также упомянуть, что, когда я запускаю веб-сайт, я также получаю окно терминала и вижу, что в нем есть сообщение об ошибке для chromedriver.Это сообщение об ошибке таково:

[1022/123519.xxx:ERROR:inspector_emulator_agent.cc(477)] Can only enable virtual time for pages, not workers

Есть идеи, что может вызвать это, или что я могу с этим сделать?

1 Ответ

0 голосов
/ 22 октября 2018

Это сообщение об ошибке ...

[1022/123519.xxx:ERROR:inspector_emulator_agent.cc(477)] Can only enable virtual time for pages, not workers

... является Response из InspectorEmulationAgent::AssertPage(), используемым Chrome Driver и Chrome / Хром .

Функция определена в inspector_emulation_agent.cc как:

Response InspectorEmulationAgent::AssertPage() {
  if (!web_local_frame_) {
    LOG(ERROR) << "Can only enable virtual time for pages, not workers";
    return Response::InvalidParams(
    "Can only enable virtual time for pages, not workers");
  }
  return Response::OK();

Эта ошибка наблюдается при использовании аргумента --no-sandbox через экземпляр ChromeOptions() следующим образом:

options = webdriver.ChromeOptions() 
options.add_argument('--no-sandbox')

Решение

  • Удаление аргумента --no-sandbox решитпроблема.
  • Если вы используете ОС Windows , вам нужно добавить аргумент --disable-gpu следующим образом:

    options = webdriver.ChromeOptions() 
    options.add_argument('--disable-gpu')
    

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...