macOS Catalina 10.15.3下Python-Selenium启动的Chrome无法关闭及Dock残留求助
解决MacOS Catalina下Selenium启动的Chrome进程残留问题
我之前在Catalina上也碰到过一模一样的问题,折腾了好几个方案才搞定,给你分享几个可行的解决办法:
1. 脚本内主动正常关闭浏览器(最推荐)
别依赖外部杀进程,在Python脚本结束前一定要调用driver.quit(),而不是driver.close()。close()只是关闭当前标签页,quit()会彻底终止Chrome浏览器进程和chromedriver进程,从根源避免残留。示例代码:
from selenium import webdriver driver = webdriver.Chrome() # 你的业务代码... # 脚本结束前执行 driver.quit()
2. 调整Chrome启动参数,强制随chromedriver退出
Catalina上Chrome的进程管理逻辑有变化,你可以给Chrome加个实验性参数,确保chromedriver退出时Chrome也跟着关闭:
from selenium import webdriver options = webdriver.ChromeOptions() # 禁止Chrome在chromedriver退出后留在后台 options.add_experimental_option("detach", False) # 可选:加上这个参数避免一些权限相关的进程残留问题 options.add_argument("--no-sandbox") driver = webdriver.Chrome(options=options)
3. 更精准的命令行杀进程
如果必须用终端杀进程,pkill -f python只能杀Python进程,但Chrome的主进程可能还在跑。试试直接针对Chrome相关进程下手:
- 杀chromedriver进程:
pkill -f chromedriver - 杀Chrome主进程:
pkill -f "Google Chrome" - 合并执行(用单引号避免shell解析问题):
pkill -f 'chromedriver|Google Chrome'
4. 修复Dock图标残留(治标)
有时候进程已经被杀死,但Dock里的Chrome图标还残留,这是Catalina的Dock缓存问题,执行下面的命令重启Dock就能解决:
killall Dock
内容的提问来源于stack exchange,提问作者Yun
相关产品推荐
相关产品推荐

