升级ChromeDriver至137后使用--auto-open-devtools-for-tabs报错求助
解决ChromeDriver 137中
--auto-open-devtools-for-tabs参数报错问题 方案1:添加启动延迟
启用--auto-open-devtools-for-tabs后,Chrome会同时初始化主窗口和DevTools窗口,Selenium可能在主窗口完全就绪前就尝试获取句柄,触发Browser window not found报错。可以在浏览器启动后添加短暂延迟,等待主窗口加载完成:
from selenium import webdriver from selenium.webdriver.chrome.options import Options import time chrome_args = [ '--disable-infobars', '--disable-notifications', '--incognito', '--disable-dev-shm-usage', '--start-fullscreen', '--remote-allow-origins=*', '--auto-open-devtools-for-tabs' ] options = Options() for arg in chrome_args: options.add_argument(arg) driver = webdriver.Chrome(options=options) time.sleep(2) # 给主窗口足够初始化时间 # 切换到主窗口(可选,确保后续操作针对目标窗口) main_window = driver.window_handles[0] driver.switch_to.window(main_window)
方案2:用显式等待替代固定延迟
相比固定延迟,显式等待更灵活可靠,能在主窗口可用时立即执行后续操作:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC chrome_args = [ '--disable-infobars', '--disable-notifications', '--incognito', '--disable-dev-shm-usage', '--start-fullscreen', '--remote-allow-origins=*', '--auto-open-devtools-for-tabs' ] options = Options() for arg in chrome_args: options.add_argument(arg) driver = webdriver.Chrome(options=options) # 等待至少一个窗口句柄可用,超时时间设为10秒 WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(1)) # 切换到主窗口 main_window = driver.window_handles[0] driver.switch_to.window(main_window)
方案3:临时降级或等待官方修复
这大概率是ChromeDriver 137的兼容性bug,如果上述方案无效,可暂时降级到ChromeDriver 136版本,同时关注ChromeDriver官方更新日志,等待bug修复版本发布。
补充说明
ChromeDriver 137对DevTools相关参数的处理逻辑有调整,启用--auto-open-devtools-for-tabs后,窗口初始化顺序发生变化,导致Selenium默认的窗口检测逻辑失效。通过延迟或显式等待,能让Selenium在主窗口完全就绪后再执行操作,规避报错。
内容的提问来源于stack exchange,提问作者VVV
相关产品推荐
相关产品推荐

