Skip to main content
 首页 » 编程设计

python之X秒后关闭Selenium webdriver

2024年09月07日32Renyi-Fan

我在 Ubuntu + Python 上使用 selenium webdriver (firefox),遇到一个问题,有时页面无法加载,整个脚本只是挂起。
有没有办法在 X 秒后强制退出 webdriver 窗口? 寻找像下面这样的代码,它确实有效。看起来如果网络驱动程序正在等待响应,它将(几乎)无限期地等待。

driver.get(record) 
sleep(5) 
my_html = driver.page_source #get whatever we have after 5 sec 
driver.close() #close driver 

注意!:接受的答案是正确的。该问题是由于我的 geckodriver 已过时(v 0.11 与 v.019)引起的。
在 ubuntu 上检查你的版本:

geckodriver --version   #command in terminal 

更新驱动程序(如果需要),use these steps. Note - Sandeep's answer worked best for me.

请您参考如下方法:

from selenium import webdriver 
from time import sleep 
 
record = "https://www.google.com" 
driver = webdriver.Firefox() 
driver.set_page_load_timeout(30) 
try: 
    driver.get(record) 
    my_html = driver.page_source #get whatever we have after 5 sec 
finally: 
    driver.close() 

设置页面加载超时,如所述here ,将实现你所追求的。如果页面没有在给定的时间内加载,它将引发 TimeoutException,关闭程序。