python使用selenium实现的自动化测试工具,执行每个用例结束后,在任务管理器中会出现越来越多的后台chrome进程,在python代码中也有执行webdriver.quit()和service.stop()等释放资源的动作,但是这些后台chrome进程不知道是怎么生成的,就是关闭不掉,结果就是主机的CPU被跑满,然后卡死。
在网上没有找到问题出现的原因,我的解决方案就是,使用psutil库,执行完一个用例后将后台所有的webdriver启动的chrome进程全部kill掉。
执行一个用例结束后调用下面的函数,将OS中的chrome进程杀掉
def kill_wbchrome_process():
# 检查 Chrome 进程的命令行参数
def is_webdriver_process(proc):
cmd_args = proc.cmdline()
for arg in cmd_args:
if 'webdriver' in arg.lower():
return True
return False
# 获取所有 Chrome 进程
chrome_processes = [proc for proc in psutil.process_iter() if proc.name().lower() == 'chrome.exe']
# 遍历 Chrome 进程并杀死非用户态的进程
for proc in chrome_processes:
try:
if is_webdriver_process(proc):
proc.kill()
print(f"Killed Chrome Process: {proc.pid}")
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
版权归原作者 liweiweili126 所有, 如有侵权,请联系我们删除。