[英]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.