我用许多代理物测试一个站点,问题在于其中一些代理物非常慢。 因此,我的代码时常被卡在加载页上。
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://example.com/example-page.php")
element = browser.find_element_by_id("someElement")
我尝试过很多东西,比如 explicate waits
或 impically waits
或 intimpically waits
, 并一直在四处搜寻相当长一段时间, 但仍未找到解决办法或工作变通。 似乎没有什么能真正影响页面加载行 browser. get ("http://example.com/example-page.php")
(http://example. com/example-page.php") , 这也是为什么它总是卡在那里的原因。
有人有办法解决吗?
<强 > 更新1号: 强>
JimEvans的回答解决了我的前一个问题, 并且这里 您可以找到这个新特性的 Python补丁 。
<强 > 新问题: 强>
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 (
意指如果该页面加载超过30秒,它就会丢出一个超时的例外,但问题是它没有力量在像 elements. kick ()
这样的页面加载页面上载之前再加载,尽管它不会阻挡到新页面全部加载之前, another_ement=浏览器.find_element_by_id (“another_ementlement”_by_id)
是其中的新疼痛,因为要么是 excol clodicly waits
waterwaits wait> waits 会等待整个页面来加载上该元素。 在一些极端情况下,这将甚至需要 < geger>HOURES 。