解决:selenium运行时driver初始化失败 DevToolsActivePort file doesn‘t exist的问题
- DevToolsActivePort file doesn't exist
- 报错信息:![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b3f8acc1c47d45e3912575896e421567.png)
- 现象:在使用pytest结合pytest-xdist使用时 运行一段时候后 selenium出现driver初始化失败
- 原因:pytest-xdist多进程运行 driver未正常关闭 浏览器资源不足导致driver初始化失败
- 分析:drivrt.close() drivrt.quit()
DevToolsActivePort file doesn’t exist
报错信息:
现象:在使用pytest结合pytest-xdist使用时 运行一段时候后 selenium出现driver初始化失败
原因:pytest-xdist多进程运行 driver未正常关闭 浏览器资源不足导致driver初始化失败
分析:drivrt.close() drivrt.quit()
drivrt.close() 关闭页面
drivrt.quit() 关闭浏览器
结合任务管理器查看
单独执行 drivrt.close() chromedriver.exe 进程没有退出,但窗口关闭了。
单独执行 drivrt.quit() chromedriver.exe 进程退出了,但窗口没有关闭。
查看drivrt.quit() 源码 最终都会执行self.service.stop()
解决方案:
- 重新封装方法:
def close(self):
'''
退出浏览器
:return:
'''
logger.info(f"关闭标签页 但不关闭浏览器")
self.driver.close()
def quit(self):
logger.info(f"退出浏览器并关闭进程")
'''
先挂关闭浏览器,再停止service,可以达到杀死chromedriver.exe进程和关闭窗口
'''
self.driver.close()
self.driver.service.stop()