zoukankan      html  css  js  c++  java
  • selenium 问题:OSError: [WinError 6] 句柄无效

    问题:

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

    File "xxxxxx.py", line 16, in get_driver
        driver = webdriver.Chrome(executable_path="chromedriver.exe")
      File "D:Python3libsite-packagesseleniumwebdriverchromewebdriver.py", line 61, in __init__
        self.service.start()
      File "D:Python3libsite-packagesseleniumwebdriverchromeservice.py", line 66, in start
        self.service_args, env=env, stdout=PIPE, stderr=PIPE)
      File "D:Python3libsubprocess.py", line 754, in __init__
        _cleanup()
      File "D:Python3libsubprocess.py", line 474, in _cleanup
        res = inst._internal_poll(_deadstate=sys.maxsize)
      File "D:Python3libsubprocess.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 。

  • 相关阅读:
    About
    Git
    SQL
    fiddler
    Windows下----nvm的安装操作
    vs-code 的常用插件
    npm安装依赖时-S和-D的作用以及区别
    Node.js的安装以及包的安装使用
    JavaScript-----设计模式
    JavaScript-----JS的深拷贝和浅拷贝
  • 原文地址:https://www.cnblogs.com/miniren/p/7065057.html
Copyright © 2011-2022 走看看