Selenium WebDriver Java:在DOMContentLoaded之前更改DOM



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

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

我知道用SeleniumWebDriver的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()方法启动页面后立即将控制传递到下一个代码行,而无需等待加载页面内容。

最新更新