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 。

  • 相关阅读:
    BZOJ 1057 悬线法求最大01矩阵
    POJ 2248
    SPOJ
    51NOD
    2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest J. Judging the Trick
    POJ 1379 模拟退火
    POJ 2420 模拟退火
    Frontend 事后诸葛亮
    【Frontend】Alpha Review 展示博客
    ASE19 团队项目 alpha 阶段 Frontend 组 scrum5 记录
  • 原文地址:https://www.cnblogs.com/miniren/p/7065057.html
Copyright © 2011-2022 走看看