Chrome без головы не завершает, никогда (Windows) - PullRequest
0 голосов
/ 27 апреля 2018

Я изо всех сил пытаюсь заставить Chrome без головы делать абсолютно все.

Я попробовал простое «начало работы» здесь: https://developers.google.com/web/updates/2017/04/headless-chrome

Этот пример: chrome --headless --disable-gpu --screenshot https://www.chromestatus.com/ ничего не делает для меня. Нет скриншота, сгенерированного в папке. (Был запущен CMD в качестве администратора).

Я создал веб-приложение (работающее в IIS на моем ПК) и установил точку останова на странице индекса. Когда я вызываю приложение с помощью Chrome без заголовка, точка останова срабатывает, но мое второе (консольное) приложение, которое создало экземпляр безголового Chrome, никогда не выходит за пределы строки «Navigate ()».

Код из консольного приложения:

IWebDriver webClient;

ChromeOptions option = new ChromeOptions();
option.AddArguments("--headless", "--disable-gpu", "--window-size=1920,1200", "--ignore-certificate-errors", "--no-sandbox");
webClient = new ChromeDriver(option);

webClient.Navigate().GoToUrl("http://localhost:49709/");

((ITakesScreenshot)webClient).GetScreenshot().SaveAsFile("ChromeScreenshot.png", ScreenshotImageFormat.Png);

Продолжительность:

  • Windows 7, 64-разрядная
  • Chrome 64-bit, 66.0.3359.139
  • ChromeDriver 2.38

Чего мне не хватает?

1 Ответ

0 голосов
/ 30 апреля 2018

Я выяснил, что является причиной проблемы, но не объяснил, почему или как ее исправить. Написание здесь на случай, если это поможет кому-то в будущем.

Я случайно обнаружил, что через 60 секунд в конечном итоге будет выдана ошибка тайм-аута:

The HTTP request to the remote WebDriver server for URL http://localhost:51660/session timed out after 60 seconds.

Эта ошибка возникала при создании объекта ChromeDriver. Обратите внимание, что это ошибка, выдаваемая Selenium при попытке установить связь с Chrome WebDriver, а НЕ выполнение команды Navigate().

Я совершенно случайно обнаружил, что при удалении параметра «--headless» из опций все работает нормально. Я также обнаружил, что другой параметр "--remote-debugging-port = 9222" также приводит к его полному сбою.

В настоящее время я предполагаю, что эти проблемы относятся к моей среде, а не к ошибке в ChromeDriver. Но все еще смотрю.

...