我想对一些具有大量 setTimeout 代码的页面运行测试。一种选择是等待此代码运行,但理想情况下,我希望在页面加载后立即强制代码运行。
我想到的一种方法是在评估页面之前将如下所示的 JavaScript 注入(inject)到页面中:
var originalSetTimeout = window.setTimeout;
window.setTimeout = function(a, t) {
originalSetTimeout(a, 0);
}
我不确定如何做到这一点,或者是否有我忽略的更好方法。
请注意,此处无法删除我正在测试的页面上的 setTimeout 代码。
最佳答案
当你做
driver.get('http://mypage.com')
WebDriver 将等待页面加载。一旦完成,你就可以做
driver.execute_script('var originalSetTimeout = window.setTimeout;
window.setTimeout = function(a, t) {
originalSetTimeout(a, 0);
}')
它可能会做你想要的事情,并且应该尽快运行。
关于javascript - 有没有办法使用 WebDriver 自动触发 setTimeout 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469441/