Selenium WebDriver Java:在 DOMContentLoaded 之前更改 DOM

发布于 2025-01-15 16:00:47 字数 568 浏览 1 评论 0原文

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

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

我知道使用 Selenium WebDriver 的 JavascriptExecutor 更改 DOM,但我不知道如何获取它to 在“DOMContentLoaded”之前执行(也许这不是正确的方法)。

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

My aim is to change the DOM of a page before the DOMContentLoaded event. Let's say my JS would look like the code below and I want to change a value of an element:

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

I know to change the DOM with the JavascriptExecutor of Selenium WebDriver, but I'm missing how to get it to to execute right before 'DOMContentLoaded' (and maybe that's not the right approach).

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

合约呢 2025-01-22 16:00:47

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

In order to do that you will have to set the pageLoadStrategy from default normal to none.
This will pass the control to the next code line immediately after launching the page with driver.get() method without waiting for the page content to be loaded.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文