Безголовый Chrome в Selenium возвращает пустую страницу (хотя работает и без заголовка) - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь получить содержимое страницы с помощью Chrome в автономном режиме, но некоторые страницы возвращают только пустой HTML. Моя настройка:

  • Java 8
  • Селен Версия 3.14.0
  • Версия Selenium Chrome Driver 3.141.59
  • Тестирование на Windows 10

код:

ChromeOptions options = new ChromeOptions();
options.setHeadless(true);
RemoteWebDriver driver = new ChromeDriver(options);

driver.get("https://www.patagonia.com/home/");

System.out.println("Title: " + driver.getTitle()); // prints out "Title: "

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

Это также работает, если я использую Firefox в режиме без головы.

Есть ли настройка, которую я мог бы пропустить или почему бы не работать в режиме без головы?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 15 января 2019

Веб-страница явно обнаруживается при запуске Chrome Headless через пользовательский агент (это отличается при запуске без головы и будет буквально содержать HeadlessChrome). Простое решение: укажите пользовательский агент Chrome без заголовка в вашем ChromeOptions, например,

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Вот как это указать через ChromeOptions:

ChromeOptions options = new ChromeOptions()
                            .addArguments("--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36")
                            .setHeadless(true);
...