如果超时python,在循环内重新加载脚本

时间:2016-02-22 19:00:16

标签: python selenium

我有一个访问不同网站的脚本。有时候我会超时,Traceback会抛出以下错误:

Traceback (most recent call last):
  File "C:\Python27\visitor.py", line 52, in <module>
    wait.until(EC.presence_of_element_located((By.Selector, "theSelector")))
  File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: 

如何识别此错误,如果发生这种情况,只需告诉脚本从头开始?我循环遍历不同的方面,这发生在循环中。所以我只想继续崩溃的地方。基本上重新加载网页并执行命令。

2 个答案:

答案 0 :(得分:0)

这是通用的,因为您没有提供任何代码示例

for url in ['http://example.com']:
    try:
        visit_site(url)
    except TimeoutException:
        pass

答案 1 :(得分:0)

绝对可以为您提供更多信息(您的代码!)。你还说你想在超时时从头开始编写脚本,然后你说你想从它超时的地方重试。我不明白你为什么要重新运行这个脚本,所以我打算提出一个只需刷新网页并再试一次的解决方案。

我会假设一些事情。

首先,您设置driver=webdriver.somebrowser()
其次,您设置了wait=WebDriverWait(driver, numberseconds)

我认为这样的事情可能有用,但如果页面永远不会加载,可能会导致无限循环。

while True: #Could cause endless loop try: wait.until(EC.presence_of_element_located((By.Selector,"theSelector"))) except TimeoutException: driver.refresh() continue

第一次回答问题!