Выполнение тестов Selenium в безголовом режиме Chrome

Я пытаюсь запустить приложение в режиме безголового Chrome, используя приведенный ниже код, при условии, что приложение работает как Google.com, код работает нормально, тогда как при предоставлении тестируемого URL реального приложения я получаю пустую страницу. Есть идеи, как это исправить?

Код:

ChromeOptions options = new ChromeOptions();
Options.addArguments("--headless");
Webdriver driver = new ChromeDriver(options);
driver.get("https://www.google.com");
System.out.println(driver.getTitle());

Версия Chrome - 66.

2 ответа

Спасибо за ответы, я смог решить, как выглядит приложение, к которому я обращался, имеет ошибку безопасности, и любое приложение, работающее в безголовом Chrome, если оно имеет ошибку безопасности, открывает пустую страницу, вот как мы можем ее обработать.

Код ChromeOptions options = new ChromeOptions(); DesiredCapabilitiesabilities = DesiredCapabilities.chrome(); Capabilities.setAcceptInsecureCerts(истинный); Options.merge(возможности);

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

  1. В строке UA есть "безголовый", а браузер идентифицируется как "HeadlessChrome". использование options.add_argument("user-agent=XXX") переопределить настройку пользовательского агента и посмотреть, решает ли он проблему.
  2. Запись заголовка AcceptLanguage не устанавливается при использовании безголовых (похоже на ошибку) Selenium не позволяет устанавливать заголовки HTTP. Вы можете использовать обходные пути, обсуждаемые здесь.