Selenium WebDriver Java:在 DOMContentLoaded 之前更改 DOM

Selenium WebDriver Java: Change DOM before DOMContentLoaded

我的目标是在 DOMContentLoaded 事件之前更改页面的 DOM。假设我的 JS 看起来像下面的代码,我想更改元素的值:

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

我知道用 Selenium WebDriver 的 JavascriptExecutor 更改 DOM,但我不知道如何让它在 'DOMContentLoaded' 之前执行(也许不是正确的方法)。

// some hook or whatever to execute right before 'DOMContentLoaded' or wherever suitable
((JavascriptExecutor) webDriver).executeScript("document.getElementById('foo').value='hi there'");

为此,您必须将 pageLoadStrategy 从默认值 normal 设置为 none
这将在使用 driver.get() 方法启动页面后立即将控件传递给下一个代码行,而无需等待页面内容加载。