如何让Selenium启动的Chrome实例在报错或程序结束后保持运行
解决Chrome实例在程序结束/出错时自动关闭的问题
我之前也碰到过类似的情况,结合你给出的环境(Python 3.9 + Selenium 3.141.0),给你几个额外的解决方案试试:
1. 捕获异常并添加手动阻塞等待
如果程序出错时窗口直接关闭,你可以通过捕获所有异常,在异常分支和程序末尾添加手动阻塞,避免进程直接退出:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_experimental_option("detach", True) try: driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) driver.get('https://www.google.com') # 这里放你的业务代码 except Exception as e: print(f"运行出错: {e}") input("按回车键继续...") # 阻塞进程,保持窗口打开 finally: # 注释掉自动退出的代码,改用手动触发 # driver.quit() input("按回车键关闭窗口...")
这个方法不管是正常运行结束还是出错,都会等待你手动输入才会让进程退出,从而保持Chrome窗口持续打开。
2. 检查Chrome与ChromeDriver的版本兼容性
虽然ChromeDriverManager会自动匹配版本,但偶尔会因为网络或缓存问题,导致安装的ChromeDriver和本地Chrome版本不兼容,进而让detach选项失效。你可以:
- 打开Chrome,在地址栏输入
chrome://version/查看当前浏览器版本 - 手动下载对应版本的ChromeDriver,然后在代码中指定路径:
driver = webdriver.Chrome(executable_path=r"C:\你的路径\chromedriver.exe", options=chrome_options)
3. 添加Chrome启动参数增强稳定性
试试给Chrome加几个额外的启动参数,可能会改善detach选项的生效情况:
chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 添加以下参数优化运行环境 chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") chrome_options.add_argument("--start-maximized") chrome_options.add_argument("--disable-extensions")
这些参数能减少Chrome运行时的异常干扰,帮助detach选项正常工作。
4. 升级到Selenium 4.x版本(可选)
Selenium 4.x对Chrome的detach选项支持更稳定,如果你可以升级版本,不妨试试:
- 先卸载旧版本:
pip uninstall selenium - 安装最新版:
pip install selenium
然后调整代码为Selenium 4.x的推荐写法:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager options = webdriver.ChromeOptions() options.add_experimental_option("detach", True) driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) driver.get('https://www.google.com')
Selenium 4.x的detach逻辑做了优化,大概率能解决你的问题。
希望这些方法能帮到你!
内容的提问来源于stack exchange,提问作者RagRocks
相关产品推荐
相关产品推荐

