Python如何关闭指定用户目录启动的Selenium Chrome窗口且不影响其他Chrome实例
Python实现关闭指定用户目录的Chrome实例
实现思路
通过遍历系统所有Chrome进程,匹配命令行中携带的用户目录参数,找到目标进程后连带子进程一并终止,不会影响其他用户目录的Chrome实例。
前置依赖
首先安装进程管理库psutil:
pip install psutil
实现代码
import psutil import os # 替换为你自己的Chrome自定义用户目录路径 TARGET_USER_DIR = r"C:\Users\john\AppData\Local\Google\Chrome\test" # 统一转为小写避免Windows路径大小写不敏感导致匹配失败 target_dir = os.path.normpath(TARGET_USER_DIR).lower() for proc in psutil.process_iter(['name', 'cmdline', 'pid']): try: # 筛选Chrome进程 if proc.info['name'].lower() != 'chrome.exe': continue cmd_line = ' '.join(proc.info['cmdline']).lower() # 匹配用户目录参数 if f'user-data-dir={target_dir}' in cmd_line: # 终止进程树,对应批处理的/t参数 proc.kill() for child in proc.children(recursive=True): child.kill() print(f"已关闭目标Chrome实例,PID:{proc.info['pid']}") except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess): # 跳过无权限访问、已经退出的进程 continue
补充说明
- 如果当前要关闭的是代码里还在运行的Selenium控制的Chrome实例,直接调用
self.web_driver.quit()即可,更简单稳妥。上述方案适用于脚本异常退出、Selenium实例脱离控制的场景。 - 路径匹配前做了标准化和小写转换,兼容Windows下路径分隔符、大小写不一致的问题,避免匹配失败。
内容的提问来源于stack exchange,提问作者John Anthony
相关产品推荐
相关产品推荐

