Python中使用Selenium如何忽略错误且不关闭浏览器
解决Selenium自动化中忽略网站错误且不关闭浏览器的方法
- 用异常捕获跳过错误步骤
把可能触发错误的操作放进try-except块里,捕获Selenium常见的异常(比如找不到元素、超时这些),捕获后不调用driver.quit(),直接继续走后续逻辑。示例代码:
from selenium import webdriver from selenium.common.exceptions import NoSuchElementException, TimeoutException driver = webdriver.Chrome() try: driver.get("可能出问题的网址") # 执行容易出错的操作,比如找某个元素 driver.find_element("id", "non-existent-element") except (NoSuchElementException, TimeoutException) as e: print(f"碰到错误: {e}") # 啥都不用额外做,直接跳过当前错误步骤 finally: # 这里别写关闭浏览器的代码,留空就行 # 接着执行其他自动化任务 driver.get("下一个要访问的网址")
- 调整页面加载策略避免超时错误
如果是页面加载慢导致的超时错误,可以设置页面加载超时时间,或者把加载策略改成eager(只加载DOM结构,不等资源加载完),捕获超时后停止加载继续走流程。示例:
from selenium.webdriver.chrome.options import Options options = Options() # 设置加载策略为eager,加快加载速度 options.page_load_strategy = "eager" driver = webdriver.Chrome(options=options) driver.set_page_load_timeout(10) # 给页面加载设10秒超时 try: driver.get("加载慢的网址") except TimeoutException: print("页面加载超时,直接跳过") # 用JS停止页面加载,避免一直卡着 driver.execute_script("window.stop();")
- 忽略JavaScript报错
要是网站本身有JS报错弹窗或者日志干扰,可以通过Chrome配置禁用相关提示,不让这些错误打断自动化流程。示例:
options = Options() # 关掉JavaScript错误提示 options.add_argument("--disable-javascript-harmony-shipping") # 或者屏蔽日志里的JS错误信息 options.add_experimental_option("excludeSwitches", ["enable-logging"]) driver = webdriver.Chrome(options=options)
- 自动处理弹窗类错误
如果操作触发了alert、confirm这类弹窗导致流程卡壳,捕获弹窗异常后处理掉弹窗,继续执行后续操作。示例:
from selenium.common.exceptions import UnhandledAlertException try: # 触发弹窗的操作 driver.find_element("id", "trigger-alert-btn").click() except UnhandledAlertException: # 接受弹窗 alert = driver.switch_to.alert alert.accept() print("处理完弹窗,继续走流程")
内容的提问来源于stack exchange,提问作者Kayc Castro
相关产品推荐
相关产品推荐

