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

安装locusts-plugins运行Webdriver示例报WinError2找不到文件错误

报错原因与修复方案

报错核心触发点并非chromedriver缺失,而是locust默认加载的gevent猴子补丁,替换了Windows原生的subprocess子进程调用逻辑,与Selenium启动chromedriver的流程存在兼容性冲突

分步修复操作

  • 基础可用性校验
    临时跳过所有locust、gevent相关依赖,在当前虚拟环境运行最简Selenium启动脚本,排除路径配置本身的问题:
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.quit()
    
    如果这一步同样抛出WinError 2,说明Windows系统PATH的修改没有对当前运行的进程生效——Windows下修改系统环境变量后,已运行的应用(包括PyCharm)不会自动读取新的PATH配置,需要完全重启PyCharm后再测试。
  • 调整gevent猴子补丁配置
    在脚本最顶部、所有locust/gevent相关模块导入之前,添加配置关闭subprocess模块的猴子补丁:
    from gevent import monkey
    monkey.patch_all(subprocess=False)
    
    该配置会让子进程调用走Windows原生的CreateProcess逻辑,直接避开gevent在subprocess.py:1270位置已知的Windows兼容性bug——这也是报错堆栈精准指向该文件行号的根本原因。
  • 兜底路径配置
    如果上述配置生效后仍有路径解析问题,可以绕开系统PATH检索逻辑,直接传入chromedriver的绝对路径完成初始化。注意Selenium 4.x必须通过Service类传递参数,不能直接将executable_path传给webdriver.Chrome():
    from selenium.webdriver.chrome.service import Service
    # 替换为本地chromedriver.exe的实际绝对路径
    chrome_service = Service(executable_path=r"C:\your\actual\path\to\chromedriver.exe")
    driver = webdriver.Chrome(service=chrome_service)
    

版本提示

当前使用的selenium>=4.0.0.b2为Selenium 4的早期测试版,对Windows下的子进程启动逻辑适配不完善,可在依赖兼容范围内升级到正式版4.x版本,减少路径解析类的偶发报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 03:45:05