Python Selenium超时异常捕获

2024-09-26 22:55:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我不希望连接超时到某个无限的加载时间(我相信Selenium的默认设置是没有超时),所以我使用:

Driver.set_page_load_timeout(30)

稍后我会检查

If condition:
 isrunning = 0

我原本以为设置页面加载超时会在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小时左右就会出现一次的问题,很难区分,但我认为这可能是合适的。


Tags: closeifdriverselenium时间pagetimeoutload
1条回答
网友
1楼 · 发布于 2024-09-26 22:55:08

除了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()

相关问题 更多 >

    热门问题