在我的帖子中,我使用一个简单的变量,设置为' 1'或者' 0' 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个小时左右发生一次的问题,因此难以分开,但我认为这可能很合适。
答案 0 :(得分:19)
除了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()