selenium 问题:OSError: [WinError 6] 句柄无效

问题:

执行多个用例的时候,会抛出异常:

File "xxxxxx.py", line 16, in get_driver
    driver = webdriver.Chrome(executable_path="chromedriver.exe")
  File "D:\Python3\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 61, in __init__
    self.service.start()
  File "D:\Python3\lib\site-packages\selenium\webdriver\chrome\service.py", line 66, in start
    self.service_args, env=env, stdout=PIPE, stderr=PIPE)
  File "D:\Python3\lib\subprocess.py", line 754, in __init__
    _cleanup()
  File "D:\Python3\lib\subprocess.py", line 474, in _cleanup
    res = inst._internal_poll(_deadstate=sys.maxsize)
  File "D:\Python3\lib\subprocess.py", line 1149, in _internal_poll
    if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
OSError: [WinError 6] 句柄无效。
解决方案:

关闭driver 时 , 使用 driver.quit()代替 driver.close()。

分析:

之前使用 driver.close() 时,用例执行结束有时会不能成功关闭chromedriver.exe,导致后台含有多个chromedriver.exe 进程(可以通过任务管理器查看)。

改用 driver.quit()之后,用例执行结束可以看到后台不会含有 chromedriver.exe 进程。该问题就解决了。

备注:

区别

close:只会关闭焦点所在的当前窗口

quit:会关闭所有关联的窗口

所以推荐使用quit 。

转载于:https://www.cnblogs.com/miniren/p/7065057.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值