You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用undetected-chromedriver出现WinError 6,求控制台干净退出方案

解决undetected-chromedriver退出时的WinError 6异常

脚本完成任务后,控制台抛出如下异常(不影响功能,但希望实现干净退出):

Exception ignored in: <function Chrome.del at 0x00000241A36A6700>
Traceback (most recent call last): File "C:\Users\Desktop\22.12.06 Vehicle Scrapper\v2\venv\Lib\site-packages\undetected_chromedriver_init_.py", line 769, in del
self.quit()
File "C:\Users\Desktop\22.12.06 Vehicle Scrapper\v2\venv\Lib\site-packages\undetected_chromedriver_init_.py", line 758, in quit
time.sleep(0.1)
OSError: [WinError 6] Controlador no válido

以下是几种可行的解决方法:

  • 手动调用quit()并禁用__del__方法
    脚本结束前显式调用driver.quit(),同时将driver.__del__设为空函数,避免垃圾回收时重复执行quit逻辑触发异常:

    from undetected_chromedriver import Chrome
    
    driver = Chrome()
    # 执行爬虫逻辑
    
    # 退出处理
    try:
        driver.quit()
    except Exception:
        pass
    # 禁用__del__方法,防止后续触发异常
    driver.__del__ = lambda self: None
    
  • 使用上下文管理器+自定义退出逻辑
    用with语句管理driver实例,同时覆盖默认的quit方法,捕获可能的OSError:

    from undetected_chromedriver import Chrome
    
    # 自定义quit方法,捕获异常
    def custom_quit(self):
        try:
            super(type(self), self).quit()
        except OSError:
            pass
    
    Chrome.quit = custom_quit
    
    with Chrome() as driver:
        # 执行爬虫逻辑
        pass
    
  • 临时修改库源码
    找到undetected_chromedriver/__init__.py中的quit方法,在time.sleep(0.1)处添加异常捕获:

    def quit(self):
        # 保留原有代码
        try:
            time.sleep(0.1)
        except OSError:
            pass
        # 保留原有代码
    

内容的提问来源于stack exchange,提问作者qwerty000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:50:33