Headless Chrome - получение источника пустой страницы - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь загрузить веб-сайт браузером Chrome в автономном режиме с помощью веб-драйвера Selenium. Я столкнулся с проблемой с некоторыми конкретными веб-сайтами. Страница загружается, в первые 2-3 секунды отображается страница с надписью «пожалуйста, включите JavaScript ...», а через 3 секунды источник страницы становится пустым.

Я давно пользуюсь Selenium и особенно Chrome и знаком с платформой. Для этого случая я использую Chrome версии 73.0.3683.86, ChromeDriver 2.46.628411 (который совместим с , какая версия ChromeDriver совместима с какой версией браузера Chrome? ) в Mac OS. Селен версия Java последняя - 3.141.59

Я подозреваю, что безголовый Chrome не может обрабатывать определенный тип контента, такой как "svg" и любой другой HTTP-ответ, связанный с GUI.

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--headless");
    WebDriver driver = new ChromeDriver(chromeOptions);

    driver.get("https://identity.tescobank.com/login");

    Thread.sleep(3000);

    System.out.println(driver.getPageSource());

    driver.quit();

Ожидаемый результат: источник страницы будет таким же, как и в режиме без заголовка.

1 Ответ

3 голосов
/ 03 апреля 2019

Headless Chrome должен уметь справляться со всем, что может делать обычный Chrome:

Он переносит все функции веб-платформы, предоставляемые Chromium и механизмом рендеринга Blink, в командную строку.

(см. https://developers.google.com/web/updates/2017/04/headless-chrome)

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

Один из способов сделать это - посмотреть строку агента пользователя, содержащую HeadlessChrome.

Тем не менее, если вы не пишете интеграционные тесты для банка, ваше поведение по крайней мере подозрительно. Если у вас есть действительная и юридическая проблема, сначала выясните ее в банке. В противном случае они могут предпринять действия против вас. Блокировка вашего IP-адреса (который может повлиять на многих людей) или обращение к полиции с просьбой поговорить с вами.

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