如何防止undetected chromedriver运行完代码后自动关闭浏览器窗口
核心原因
undetected-chromedriver 内置了Python进程结束时自动销毁浏览器进程的清理逻辑,这是它和原生chromedriver默认行为不同的核心原因。另外你示例代码中的driver.get('www.google.com')缺少协议头(应写为https://www.google.com),导航错误也可能触发窗口提前关闭。
解决方案
方案1:开启detach配置(最常用)
初始化浏览器时添加detach实验选项,禁用自动关闭逻辑,效果和原生chromedriver一致,代码示例:import undetected_chromedriver as uc options = uc.ChromeOptions() # 开启detach,进程结束后保留浏览器窗口 options.add_experimental_option("detach", True) driver = uc.Chrome(options=options) driver.get("https://www.google.com")注意开启detach后如果需要主动关闭浏览器,要么手动点击窗口关闭按钮,要么代码中调用
driver.quit(),否则浏览器进程会残留后台。方案2:添加进程阻塞逻辑(适合临时调试)
在代码末尾加阻塞语句,让Python进程不主动退出,直到你手动触发结束,示例:import undetected_chromedriver as uc driver = uc.Chrome() driver.get("https://www.google.com") # 程序阻塞在这里,按回车后进程才会退出,浏览器同步关闭 input()方案3:关闭auto_quit开关(适配部分版本)
部分版本的undetected-chromedriver支持直接传递auto_quit=False参数初始化,直接关闭自动退出逻辑:import undetected_chromedriver as uc driver = uc.Chrome(auto_quit=False) driver.get("https://www.google.com")
内容的提问来源于stack exchange,提问作者delamain
相关产品推荐
相关产品推荐

