Selenium WebDriver Java: измените DOM перед DOMContentLoaded

Моя цель — изменить DOM страницы до события DOMContentLoaded. Допустим, мой JS будет выглядеть как код ниже, и я хочу изменить значение элемента:

      document.addEventListener("DOMContentLoaded", function(event) {
  console.log("Value of element foo: " + document.getElementById('foo').value);
});

Я знаю, как изменить DOM с помощью JavascriptExecutorSelenium 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()метод, не дожидаясь загрузки содержимого страницы.

Другие вопросы по тегам