繁体   English   中英

Python Selenium Timeout Exception Catch

[英]Python Selenium Timeout Exception Catch

在我的线程中,我使用一个简单的变量设置为'1'或'0'来表示它是否已准备好再次运行。 试图调试一个问题,有时这不会被重置,我想我可能会有。

我不希望连接超时到一些无限的加载时间(我相信Selenium的默认值是没有超时)所以我使用:

Driver.set_page_load_timeout(30)

后来我会检查那个帖子

If condition:
 isrunning = 0

我原本以为set_page_load_timeout会在30秒后停止加载但如果我正确理解它会实际抛出异常,所以我需要做类似的事情:

try:
  Driver.set_page_load_timeout(30)
except:
  isrunning = 0
  Driver.Close()

-Do whatever else in function -
If condition:
  isrunning = 0
  Driver.Close()

因此,如果它运行超过30秒,它将关闭并设置为0,否则它将运行并检查并稍后设置为0。

我很欣赏这是一小段代码,但完整的东西很长,我认为这是重要的部分。

如果有人能确认我在这里有正确的想法,我会很感激。 我全力以赴进行测试,但这是一个问题,每8个小时发生一次,因此很难分开,但我认为这可能适合。

几乎你的代码工作正常,除了Driver.Close() 它应该是Driver.close() 在特定时间内未加载页面时,将抛出TimeoutException 请参阅下面的代码:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

Driver = webdriver.Firefox()
try:
    Driver.set_page_load_timeout(1)
    Driver.get("http://www.engadget.com")
except TimeoutException as ex:
    isrunning = 0
    print("Exception has been thrown. " + str(ex))
    Driver.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM