Chromedriver浏览器超时返回上一页错误-Python Selenium

Chromedriver浏览器超时返回上一页错误-Python Selenium,python,selenium,selenium-webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,基本上,我创建了一个向搜索引擎发送查询的程序。从搜索结果中,它将选择一个随机链接进行单击。这很有效。现在,我为等待设置了3秒的超时。如果页面加载时间超过3秒,我想使用try/except块捕获错误/异常,然后返回上一页 我遇到了一些问题。我尝试了多种方法,但在当前“Exception TimeoutException”状态下,我不断收到第二个超时错误 以下是我最近尝试的代码: browser = webdriver.Chrome() browser.set_page_load_timeout(3

基本上,我创建了一个向搜索引擎发送查询的程序。从搜索结果中,它将选择一个随机链接进行单击。这很有效。现在,我为等待设置了3秒的超时。如果页面加载时间超过3秒,我想使用try/except块捕获错误/异常,然后返回上一页

我遇到了一些问题。我尝试了多种方法,但在当前“Exception TimeoutException”状态下,我不断收到第二个超时错误

以下是我最近尝试的代码:

browser = webdriver.Chrome()
browser.set_page_load_timeout(30) # Set to 2 seconds to raise timeoutexception

browser.get('http://bing.com')
time.sleep(2)

try:
    browser.set_page_load_timeout(2) #Set load to 2 sec to raise exception
    browser.get('http://amazon.com')
    print('Successfully opened page.')
except TimeoutException:
    print('Timeout Exception occurred.')
    browser.set_page_load_timeout(30) # Set to normal load timeout
    time.sleep(1)
    browser.execute_script('return window.stop')
    print('Browser loading stopped.')
    time.sleep(1)
    browser.execute_script('window.history.go(-1)')
    print('Browser successfully went back to the previous page.')
这会在尝试使用浏览器执行任何操作时引发第二个超时。对于“返回窗口。停止”,我已尝试:

browser.execute_script('return window.stop')
browser.execute_script('return window.stop()')
browser.execute_script('window.stop')
browser.execute_script('window.stop()')
browser.execute_script('window.stop()';)
browser.execute_script('return window.stop';) etc.etc.
我还尝试了
browser.back()
方法在浏览器中返回。我在这里不知所措。有人有解决办法吗


如果您需要更多信息,请告诉我。我只是在这里做了一些示例代码,先去Bing,然后直接去Amazon进行测试

我认为set_page_load_timeout有一些问题,我也有同样的问题,一旦触发异常,控件就不会返回。您可以使用webdriver.Firefox(timeout=5),这对我来说是可行的,Python3.6,selenium,3.5。设置页面加载超时似乎适用于Phantom,但不适用于Chrome驱动程序2.31。您使用的是什么操作系统?您使用的是什么Chrome驱动程序版本?我正在为Linux Ubuntu 16.04服务器编写此版本,但我目前正在Windows 7上测试它。Chromedriver 2.31、Selenium 3.5、Python 3.5.2我想保留Chromedriver 2.31的唯一原因是它包含允许无头使用的send_键修复。我有一个修改过的Linux 2.30版本,它也有send_-keys补丁。也许那会有用…事实上,我也没有一个不同版本的chromedriver为我解决问题。虽然我用我的设置运行了你的代码,并且它运行正常,但在两个版本上都不太确定。对不起的:(运行时是否出现超时异常?如果没有,可能会将超时降低到1秒。此外,它有时也会出现超时异常。但是我的脚本每天都会运行,我无法将其出错。您使用的是什么操作系统?我想设置页面加载超时有一些问题,一旦出现异常,我也会遇到同样的问题未返回riggered控件。您可以使用webdriver.Firefox(超时=5)这对我来说是可行的,python 3.6,selenium,3.5。set_page_load_timeout似乎适用于Phantom,但不适用于Chrome驱动程序2.31。你使用的是什么操作系统?你使用的是什么Chrome驱动程序版本?我为Linux Ubuntu 16.04服务器编写这篇文章,但我目前正在Windows 7上测试它。Chromedriver 2.31,selenium 3.5,python 3.5.2是我唯一的理由我想保留ChromeDriver 2.31是因为它包括允许无头使用的send_-keys修复程序。我有一个Linux的修改版2.30,它也有send_-keys修复程序。也许那会有用…实际上,我也没有ChromeDriver的不同版本为我解决问题。虽然我用我的设置运行了你的代码,它在两个版本上都有效ons所以不太确定。抱歉:(运行时是否出现超时异常?如果没有,可能会将超时降低到1秒。此外,它有时会出现超时异常。但是我的脚本每天都会运行,我无法将其出错。您使用的是什么操作系统?