Я пытаюсь извлечь различную информацию с сайта. Сайт использует 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 (), но он не самый лучший, и очень странно, что первое решение не работает
Может кто-нибудь помочь мне понять, как решить проблему?