默认的Selenium Chrome WebDriver页面加载超时时间

3
使用Selenium Chrome WebDriver时,我试图加载一个页面,但是Selenium一直报超时错误。
例如,来自渲染器的超时:3000。这是默认超时时间,直到页面加载完成才会等待。
我使用Groovy Selenium与Chrome配合工作,一切都很好,只有超时错误有时会导致问题。
有人知道在Chrome Selenium WebDriver中页面加载的默认超时时间是多少吗?
如果可以更改,如何更改?
我目前正在使用Selenium Chrome驱动程序v2.9 Chrome v.27在GROOVY中。
2个回答

3
我一直在使用Python尝试Chrome、Firefox和PhantomJS。 我搜索了很多网页,试图找到有关使用无头web驱动程序和工作加载页面超时的答案。 各种答案存在很多混淆不清之处。 由于此页面在搜索“selenium chrome timeout”等内容时排名较高,因此我将在此页面上发布我的发现。
现在,我可以使用超时让chromedriver.exe正常工作。 Selenium包装器似乎有问题,但以下代码符合我的要求。不要调用:
chrome_driver.set_page_load_timeout(my_timeout_secs)
chrome_driver.get( ...... )

使用:

chrome_driver.execute(Command.SET_TIMEOUTS, {
            'ms': float(my_timeout_secs * 1000),
            'type': 'page load'})
chrome_driver.get( ...... )

这将绕过selenium包装器并使用Chrome设置超时。然后只需使用标准的Selenium捕获即可。页面将超时,然后在Chrome引发来自selenium.common.exceptions的TimeoutException之后,命中您的代码。

try:
    ... set_timeout ...
    ... get url ...

except TimeoutException as e:

    # do whatever you need to here

希望这能帮助到需要设置超时时间的无头驱动程序的人。
谢谢, LJHW

2
谢谢你的建议!我终于在Python中让Chrome webdriver的超时功能正常工作了!对我来说有效的方法是在调用chrome_driver.get()之前调用函数chrome_driver.set_page_load_timout() - burgund

-1
你看过文档了吗?

隐式等待是告诉WebDriver在尝试查找元素或元素时,在DOM中轮询一定的时间,如果它们不是立即可用的。默认设置为0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接