【发布时间】:2012-02-22 09:44:34
【问题描述】:
我可以假设如果使用 Selenium2 WebDriver executeScript 方法,我的脚本将在 window.onload 之后?
例如加载完所有 DOM 元素/图像之后?
【问题讨论】:
标签: javascript testing selenium webdriver selenium-webdriver
我可以假设如果使用 Selenium2 WebDriver executeScript 方法,我的脚本将在 window.onload 之后?
例如加载完所有 DOM 元素/图像之后?
【问题讨论】:
标签: javascript testing selenium webdriver selenium-webdriver
是的,您可以假设它会在浏览器中加载整个页面后执行
【讨论】:
不一定。如果您在调用get() 后使用executeScript() 方法,则答案是“也许”。 WebDriver 尝试阻止对get() 的调用,但可能有 JavaScript 代码在 onload 触发后仍会运行(考虑 onload 事件处理程序中的代码使用 setTimeout() 延迟执行的情况),这意味着 DOM仍有可能被操纵。如果您在单击导致导航的链接后使用executeScript(),则执行等待页面完全加载的可能性会更小,因为单击是异步的,并且无法保证 WebDriver 将能够等待要加载的页面。
【讨论】:
window.onload之前运行executeScript吗?我面临一个无法运行 executeScript 的问题,因为网页非常繁重,使用 ajax 与服务器通信,导致executeScript 不断等待和等待......