Selenium WebDriver Java: измените DOM перед DOMContentLoaded
Моя цель — изменить DOM страницы до события DOMContentLoaded. Допустим, мой JS будет выглядеть как код ниже, и я хочу изменить значение элемента:
document.addEventListener("DOMContentLoaded", function(event) {
console.log("Value of element foo: " + document.getElementById('foo').value);
});
Я знаю, как изменить DOM с помощью
JavascriptExecutor
Selenium WebDriver, но я не знаю, как заставить его выполняться прямо перед «DOMContentLoaded» (и, возможно, это неправильный подход).
// some hook or whatever to execute right before 'DOMContentLoaded' or wherever suitable
((JavascriptExecutor) webDriver).executeScript("document.getElementById('foo').value='hi there'");
1 ответ
Для этого необходимо установитьpageLoadStrategy
по умолчанию
normal
к
none
.
Это передаст управление следующей строке кода сразу после запуска страницы с
driver.get()
метод, не дожидаясь загрузки содержимого страницы.