首页
学习
活动
专区
工具
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
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10750198

复制
相关文章

相似问题

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