Python get()需要很长时间才能完成,如何设置超时方法来处理它?

Python get()需要很长时间才能完成,如何设置超时方法来处理它?,python,windows,google-chrome,selenium,webdriver,Python,Windows,Google Chrome,Selenium,Webdriver,我需要测试的网站通常需要很长时间才能加载,我不想在需要测试的时候等待,所以我几乎花了一整天的时间从互联网上搜索答案。然而,我仍然没有找到一个完美的答案来解决这个问题 我的问题的本质是打开一个新页面,比如使用driver.get,需要花费太多的时间才能完全加载,虽然我期望的元素出现了,但我应该在运行脚本时手动单击chrome的停止按钮数次 这是我以前尝试过的方法 def timeout(func): def wrapper(*args, **kwargs): try: dr

我需要测试的网站通常需要很长时间才能加载,我不想在需要测试的时候等待,所以我几乎花了一整天的时间从互联网上搜索答案。然而,我仍然没有找到一个完美的答案来解决这个问题

我的问题的本质是打开一个新页面,比如使用driver.get,需要花费太多的时间才能完全加载,虽然我期望的元素出现了,但我应该在运行脚本时手动单击chrome的停止按钮数次

这是我以前尝试过的方法

def timeout(func):
def wrapper(*args, **kwargs):
    try:
        driver.set_page_load_timeout('10')
        func(*args, **kwargs)
    except Exception:
        print('This fucking function takes too long to finish!')
    finally:
        driver.execute_script('window.stop();')
return wrapper
我是这样使用的:例如

url = 'http://igame.163.com'
@timeout
def openwebsite(url):
    driver.get(url)
openwebsite(url)
但是,脚本经常抛出超时异常,甚至没有这样的元素,或者在其他地方不可单击,如果我删除上面的代码,将不会抛出任何异常

我只是想找到一种方法,当加载一个页面花费太多的时间,超过我之前设置的超时时间时,脚本会自动单击chrome的停止按钮,我确信我需要的所有元素都已完全加载

PS:我使用python 3.4编写selenium脚本,浏览器是chrome,操作系统平台是Win7 X64。

您尝试过:


如果我理解了,那么您希望总是在[n]秒之后中断,而不仅仅是当加载页面的请求需要超过[n]秒时。

我的意思是,在n秒之后,如果页面不仅是我需要打开的第一页,而且是我需要跳转到的其他页面,我在需要加载页面时也会面临同样的问题。未完全加载,将自动单击停止按钮,以便我的脚本可以继续运行。可能您的解决方案对我不起作用,但非常感谢!