首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Selenium WebDriver中设置加载页面的实际超时时间?

在Selenium WebDriver中设置加载页面的实际超时时间?
EN

Stack Overflow用户
提问于 2012-05-25 15:24:03
回答 2查看 16.6K关注 0票数 18

我正在测试一个有很多代理的网站,问题是其中一些代理非常慢。因此,我的代码时不时地卡在加载页面的工作中。

代码语言:javascript
复制
from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://example.com/example-page.php")
element = browser.find_element_by_id("someElement")

我已经尝试了很多像explicit waitsimplicit waits这样的东西,并且寻找了很长一段时间,但仍然没有找到解决方案或变通办法。似乎没有什么真正影响页面加载行browser.get("http://example.com/example-page.php"),这就是它总是卡在那里的原因。

有人有解决这个问题的办法吗?

更新1:

JimEvans的回答解决了我之前的问题,here你可以找到这个新特性的python补丁。

新问题:

代码语言:javascript
复制
browser = webdriver.Firefox()
browser.set_page_load_timeout(30)

browser.get("http://example.com/example-page.php")

element = browser.find_element_by_id("elementA")
element.click() ## assume it's a link to a new page http://example.com/another-example.php

another_element = browser.find_element_by_id("another_element")

正如你所看到的,browser.set_page_load_timeout(30)只影响browser.get("http://example.com/example-page.php"),这意味着如果这个页面加载超过30秒,它将抛出一个超时异常,但问题是它对页面加载没有能力,比如element.click(),尽管它在新页面完全加载之前不会阻塞,another_element = browser.find_element_by_id("another_element")是新的麻烦,因为explicit waitsimplicit waits都会等待整个页面加载,然后才开始寻找那个元素。在一些极端的情况下,这甚至需要小时的。我能做些什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-25 19:34:25

您可以尝试使用库中引入的页面加载超时。它的实现并不是通用的,但它通过.NET和Java绑定公开了,现在已经在和Firefox驱动程序中实现了,并在即将发布的2.22版本中实现了IE驱动程序。在Java中,要将页面加载超时设置为15秒,设置它的代码将如下所示:

代码语言:javascript
复制
driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS);

如果它没有在Python语言绑定中公开,我相信维护者会急切地接受实现它的补丁。

票数 12
EN

Stack Overflow用户

发布于 2016-10-10 13:51:21

您仍然可以通过等待预期元素出现(不等待可见性) 5-8秒,然后发送window.stop() JS脚本(停止加载更多元素)来加速脚本执行,而无需等待整个页面加载或在5-8秒后捕获页面加载的超时异常,然后调用window.stop()

因为如果页面没有采用延迟加载技术(只加载可见元素,滚动后才加载其余元素),它会在返回window.ready状态之前加载每个元素,所以如果任何一个元素需要更长的渲染时间,它就会变慢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10750198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档