You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

undetected_chromedriver正常运行但seleniumbase(UC模式)偶现Chrome连接失败错误的求助

undetected_chromedriver正常运行但seleniumbase(UC模式)偶现Chrome连接失败错误的求助

我最近在开发一个需要同时使用两个WebDriver的应用,其中一个基于undetected_chromedriver库,另一个是开启了UC模式的seleniumbase,代码如下:

driver1 = undetected_chromedriver.Chrome(use_subprocess=True, user_multi_procs=True, headless=True)
driver2 = seleniumbase.Driver(uc=True, headless2=True, uc_subprocess=True, incognito=True)

driver1运行一切正常,但启动driver2的时候,偶尔会遇到Chrome连接失败的错误,具体报错信息如下:

session not created: cannot connect to chrome at 127.0.0.1:63728
from chrome not reachable
Stacktrace:
    GetHandleVerifier [0x00007FF7DA6E2775+28773]
    (No symbol) [0x00007FF7DA64AFB0]
    (No symbol) [0x00007FF7DA4E5359]
    (No symbol) [0x00007FF7DA4D6ECD]
    (No symbol) [0x00007FF7DA5260A2]
    (No symbol) [0x00007FF7DA51B025]
    (No symbol) [0x00007FF7DA56A2DC]
    (No symbol) [0x00007FF7DA5698C0]
    (No symbol) [0x00007FF7DA55ED43]
    (No symbol) [0x00007FF7DA52A548]
    (No symbol) [0x00007FF7DA52B6B1]
    GetHandleVerifier [0x00007FF7DAA0F45D+3358029]
    GetHandleVerifier [0x00007FF7DAA2430D+3443709]
    GetHandleVerifier [0x00007FF7DAA183FD+3394797]
    GetHandleVerifier [0x00007FF7DA7A929B+842635]
    (No symbol) [0x00007FF7DA65654F]
    (No symbol) [0x00007FF7DA651FA4]
    (No symbol) [0x00007FF7DA65213D]
    (No symbol) [0x00007FF7DA641629]
    BaseThreadInitThunk [0x00007FFF9BD27374+20]
    RtlUserThreadStart [0x00007FFF9CF9CC91+33]

我找了不少相关解决方案都没解决问题,有没有大佬能帮忙分析下这个错误的原因呀?


可能的解决方向(供参考)

作为经常处理WebDriver问题的开发者,我整理了几个排查思路:

  • 清理残留进程与端口冲突检查:偶发的连接失败大概率是之前的Chrome进程没彻底关闭,或者两个Driver自动分配的调试端口冲突。可以在启动driver2前,手动清理系统中残留的Chrome/Chromium进程;也可以给seleniumbase指定固定端口,比如添加port=9999参数,避免自动分配时的冲突。

  • 统一Chrome版本与驱动路径undetected_chromedriverseleniumbase的UC模式可能各自下载了不同版本的Chrome,版本不匹配会导致连接异常。可以手动指定同一个Chrome二进制文件路径,比如给driver1添加executable_path="你的Chrome路径",给driver2添加chrome_path="你的Chrome路径",确保两者使用完全一致的Chrome版本。

  • 调整启动参数组合:你同时给driver2开启了incognitoheadless2和UC模式,部分参数组合可能存在兼容性问题。可以尝试先移除incognito或者替换headless2为普通的headless参数,观察是否还会出现错误;另外,两个Driver都开启了subprocess相关参数,可能在进程管理上存在冲突,尝试关闭其中一个的subprocess参数看看效果。

  • 增加启动间隔等待:有时候driver1还没完全启动完成,driver2就开始初始化,导致系统资源不足或者Chrome服务未准备就绪。可以在启动driver2前添加短暂等待,比如import time; time.sleep(3),看看能否缓解偶发的连接问题。

备注:内容来源于stack exchange,提问作者Zak Virgo

火山引擎 最新活动