Безголовый Chrome и document.location.href изменить - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь автоматизировать поток поиска на странице, которая требует от вас входа в систему для доступа к форме поиска. Я использую chromedriver с Java с конфигами ниже:

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.setHeadless(true);

    chromeOptions.addArguments("--disable-gpu");
    chromeOptions.addArguments("--disable-extensions");
    chromeOptions.setExperimentalOption("useAutomationExtension", false);
    chromeOptions.addArguments("--enable-javascript");
    chromeOptions.addArguments("--no-sandbox","--disable-dev-shm-usage'");

После входа в систему я могу выполнить поиск, введя правильные данные в соответствующие текстовые поля. На странице результатов поиска есть кнопка для возврата на страницу поискового запроса, связанная кнопка и функция js выглядят следующим образом:

<input class="button" type="button" name="NAME" value="Search Again" onClick="somefunc('some_hash_params_etc')">
.....
function somefunc(url){document.location.href=url; }

Но в автономном режиме нажатие на эту кнопку заканчивается главной страницей, где он снова запрашивает мои учетные данные для входа.

Для того же потока тест без заголовка работает отлично, каждое нажатие кнопки перенаправляет меня в форму поиска, не заставляя меня заново регистрироваться.

Я попытался установить url вручную в значение, отправленное функции js, и попытался выполнить js в коде, но результат тот же для режима без заголовка, перенаправленного обратно на главную страницу вместо формы поиска.

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

1 Ответ

1 голос
/ 13 мая 2019

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

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("headless");
chromeOptions.addArguments("window-size=1920,1080");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...