Python+Selenium测试运行后Chrome92自动关闭,已设detach仍无效求解决
问题根因
Chrome 92版本对应内核的ChromeDriver,存在--auto-open-devtools-for-tabs启动参数与detach保活配置的兼容冲突,会导致detach保活失效,代码执行完毕后浏览器随Python进程退出自动关闭。
解决方案
你可以任选以下任意一种方案解决:
- 方案1:移除冲突的启动参数
直接删除代码中options.add_argument("--auto-open-devtools-for-tabs")这一行即可,你现有配置中的options.add_experimental_option("detach", True)已经是正确的保活逻辑,移除冲突参数后浏览器就会保持开启。 - 方案2:添加进程阻塞逻辑(无需修改现有启动配置)
如果需要保留自动打开开发者工具的配置,可以在代码的最后一行添加阻塞语句,阻止Python进程直接退出,即可保持浏览器常驻:# 加到代码最后一行即可 input("按回车键后手动关闭浏览器:") - 方案3:升级适配版本(可选)
如果你不想调整现有配置也不想加阻塞语句,可以将Selenium版本升级到4.1及以上,该版本已修复此兼容问题:pip install selenium==4.1.0
修正后完整示例代码(保留devtools配置版)
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_experimental_option("detach", True) options.add_argument("start-maximized") options.add_argument("--auto-open-devtools-for-tabs") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) driver = webdriver.Chrome( options=options, executable_path=r"./chromedriver.exe", ) driver.get("https://www.python.org") print(driver.title) # 新增阻塞语句保活 input("按回车键后手动关闭浏览器:")
内容的提问来源于stack exchange,提问作者KiritoLyn
相关产品推荐
相关产品推荐

