Python 如果超时,则在循环中重新加载脚本

Python 如果超时,则在循环中重新加载脚本,python,selenium,Python,Selenium,我有一个脚本访问不同的网站。有时我会超时,回溯将抛出以下错误: 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

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

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: 
回溯(最近一次呼叫最后一次):
文件“C:\Python27\visitor.py”,第52行,在
等待.直到(EC.存在位于((By.Selector,“theSelector”))的元素)
文件“C:\Python27\lib\site packages\selenium\webdriver\support\wait.py”,第80行,直到
引发TimeoutException(消息、屏幕、堆栈跟踪)
TimeoutException:消息:

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

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

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

当然可以通过更多信息(您的代码!)来帮助您。您还说要在超时时从头开始启动脚本,然后说要在脚本超时时重试。我不明白你为什么要重新运行脚本,所以我将提出一个解决方案,只需刷新网页并重试

我将假设一些事情

首先,设置
driver=webdriver.somebrowser()

其次,设置
wait=WebDriverWait(driver,numberseconds)

我认为这样做可能有效,但如果页面从未加载,可能会导致无休止的循环

如果为True:#可能会导致无休止的循环
尝试:
等待,直到(EC.presence_of_element_located((通过选择器,“theSelector”))
除TimeoutException外:
driver.refresh()
继续


第一次回答问题

捕获
TimeoutException
并在该异常中放置
continue