繁体   English   中英

有没有办法用WebDriver自动触发setTimeout事件?

[英]Is there any way to automatically fire setTimeout events with WebDriver?

我想对一些带有setTimeout代码的页面进行测试。 一种选择是让我等待这段代码运行,但是理想情况下,我想在页面加载后立即强制代码运行。

我想到的一种方法是在对页面进行评估之前将javascript如下代码注入页面:

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);
                      }')

它可能会做您想要的,并尽快运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM