使用undetected chromedriver遇WinError 6,求非控制台运行方案
undetected_chromedriver报错处理与非控制台运行方案
报错信息
Exception ignored in: <function Chrome.__del__ at 0x00000241BFF44360> Traceback (most recent call last): File "C:\Users\kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\undetected_chromedriver\__init__.py", line 769, in __del__ File "C:\Users\kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\undetected_chromedriver\__init__.py", line 758, in quit OSError: [WinError 6] The handle is invalid
问题说明
代码在Python控制台运行无报错,但需要了解无需通过Python控制台运行代码的方法。环境信息:Python 3.11,最新版Chrome浏览器,最新版undetected chromedriver。
代码示例
import undetected_chromedriver.v2 as uc driver = uc.Chrome() driver.get('https://nowsecure.nl')
报错修复方法
这个报错是Python垃圾回收触发Chrome.__del__方法时,浏览器进程已提前关闭,导致句柄无效引发的。可通过以下方式解决:
- 显式调用退出方法:在代码末尾主动调用
driver.quit(),确保进程正常关闭,同时用try-finally保证即使代码出错也能执行退出:import undetected_chromedriver.v2 as uc driver = uc.Chrome() try: driver.get('https://nowsecure.nl') finally: driver.quit() - 使用上下文管理器:用
with语句自动管理资源,无需手动调用quit,代码结束后会自动关闭浏览器:import undetected_chromedriver.v2 as uc with uc.Chrome() as driver: driver.get('https://nowsecure.nl')
非Python控制台运行代码的方法
1. 保存为.py文件双击运行
- 将代码保存为
test.py文件(比如存到桌面) - 确认Python已添加到系统环境变量
- 直接双击文件,系统会自动打开命令提示符窗口执行代码;如果需要查看运行结果,可在代码末尾添加
input("按任意键退出..."),防止窗口自动关闭
2. 打包成独立可执行文件(exe)
用pyinstaller把代码打包成exe,无需依赖Python环境就能运行:
- 安装pyinstaller:
pip install pyinstaller - 执行打包命令:
pyinstaller --onefile --windowed test.py--onefile:生成单个exe文件,方便分发--windowed:运行时不显示控制台窗口(如果需要查看日志,可去掉此参数)
- 打包完成后,exe文件会在项目目录的
dist文件夹中,直接双击即可运行
3. 通过IDE运行
使用PyCharm、VS Code等Python IDE,打开代码文件后点击运行按钮即可执行,全程无需手动打开控制台。
内容的提问来源于stack exchange,提问作者leveloneprogrammer
相关产品推荐
相关产品推荐

