Селен с безголовым chrome не ждет javascript - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь извлечь различную информацию с сайта. Сайт использует Javascript и позволяет искать серию адресов на карте. Что мне нужно сделать, это: 1) ввести текст в текстовое поле 2) нажать кнопку поиска 3) дождаться обновления списка адресов и карты (Gmaps) 4) извлечь данные из списка, когда я использую Selenium и chrome в обычной версии все работает. для пункта 3, чтобы дождаться полной загрузки страницы, я использую следующий блок кода:

public void waitForLoading() {
    ExpectedCondition<Boolean> pageLoadCondition = new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver driver) {
            boolean condition = ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
            System.out.println(condition);
            return condition;
        }
    };
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(pageLoadCondition);
}

Когда я использую Chrome без заголовка, используя точно такой же код, селен не ждет. Точка 3 всегда оценивается как истина, т.е. вышеуказанная функция всегда возвращает истину, даже если список не загружен. Единственное решение, которое я нашел, это использовать Thread.sleep (), но он не самый лучший, и очень странно, что первое решение не работает

Может кто-нибудь помочь мне понять, как решить проблему?

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