运行Python Selenium测试时报错[WinError 193] %1不是有效的Win32应用
错误原因
OSError: [WinError 193] %1 is not a valid Win32 application 报错本质是系统无法识别你代码调用的chromedriver.exe为合法的Windows可执行文件,结合你之前运行正常、重启后报错的场景,常见诱因如下:
chromedriver.exe文件损坏:重启过程中磁盘写入异常、杀毒软件后台扫描时误篡改/隔离驱动文件,都会导致原本正常的可执行文件失效- 驱动路径异常:驱动文件被手动移动、重命名,导致代码里拼接的相对路径没有指向正确的驱动文件
- 版本不匹配:Chrome浏览器后台自动更新后,和当前
chromedriver.exe版本不兼容
排查解决步骤
- 验证驱动文件本身有效性
找到代码中对应路径下的chromedriver.exe(你的场景下路径为C:\Projects\tests\libs\chromedriver.exe),直接双击运行:- 如果弹出不是有效的Win32应用提示,直接确认文件损坏,删除现有驱动,重新下载和当前Chrome版本匹配、和系统架构(32/64位)对应的ChromeDriver替换即可
- 如果能正常弹出黑色命令行窗口显示驱动启动日志,说明驱动文件本身正常,进入下一步排查
- 校验路径正确性
在setUpClass方法中打印拼接后的驱动路径,确认路径指向正确:
chromedriver_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), r"libs\chromedriver.exe") # 新增以下两行校验 print("驱动路径:", chromedriver_path) print("路径是否存在:", os.path.exists(chromedriver_path))
如果打印结果显示路径不存在,修正路径配置即可。
3. 排查安全软件限制
打开本机杀毒软件(Windows Defender、第三方安全软件等)的查杀日志、隔离区,确认chromedriver.exe是否被误隔离,恢复后加入白名单即可。
4. 校验版本匹配度
打开Chrome浏览器地址栏输入chrome://version/,确认当前浏览器实际版本,和chromedriver.exe版本大版本号必须完全一致,如果浏览器已自动更新,下载对应版本的驱动替换即可。
5. 可选长效方案:自动管理驱动
安装webdriver-manager依赖自动匹配下载对应驱动,无需手动维护驱动版本和路径:
pip install webdriver-manager
修改驱动初始化代码:
from webdriver_manager.chrome import ChromeDriverManager # 替换原有Service初始化逻辑 ser = Service(ChromeDriverManager().install())
内容的提问来源于stack exchange,提问作者pbaranski
相关产品推荐
相关产品推荐

