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

Chrome 118升级后Selenium(chromedriver)无法定位弹窗元素问题

Chrome 118升级后Chromedriver无法定位弹窗元素的解决方法

以下是针对问题的具体排查和解决步骤:

  • 第一步:确保Chromedriver版本与Chrome 118完全匹配
    Chrome升级到118后,必须使用对应版本的Chromedriver,版本不匹配是这类问题的核心原因。

    1. 打开Chrome,在地址栏输入chrome://version/查看完整版本号(比如118.0.5993.70)
    2. 下载对应版本的Chromedriver,替换脚本中使用的旧版本
    3. 验证替换后重新运行脚本
  • 第二步:检查弹窗元素是否在iframe内
    Chrome版本升级后,弹窗的DOM结构可能出现iframe嵌套变化,导致直接定位失败:

    # 先找到弹窗中的iframe元素(根据实际情况定位iframe,比如通过ID或XPath)
    iframe = window_handler_variable.find_element(By.XPATH, "//iframe[@id='xxx']")
    # 切换到iframe
    window_handler_variable.switch_to.frame(iframe)
    # 现在再定位目标元素
    FileDescription = window_handler_variable.find_element(By.ID, "arid_WIN_0_8")
    # 操作完成后切回主文档
    window_handler_variable.switch_to.default_content()
    
  • 第三步:添加显式等待,确保元素完全加载
    新版本Chrome的渲染速度可能有变化,隐式等待可能不足以让元素加载完成:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 等待10秒,直到元素可点击
    FileDescription = WebDriverWait(window_handler_variable, 10).until(
        EC.element_to_be_clickable((By.ID, "arid_WIN_0_8"))
    )
    # 点击元素
    FileDescription.click()
    
  • 第四步:尝试切换定位方式
    换用CSS选择器替代XPath,避免新版本Chrome对XPath解析的兼容性问题:

    FileDescription = window_handler_variable.find_element(By.CSS_SELECTOR, "#arid_WIN_0_8")
    
  • 第五步:禁用Chrome的部分实验特性
    若以上方法无效,尝试启动Chrome时添加参数禁用可能影响元素定位的新特性:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    # 添加禁用参数,可根据情况调整
    options.add_argument("--disable-features=VizDisplayCompositor")
    options.add_argument("--disable-gpu")
    # 初始化driver时传入options
    window_handler_variable = webdriver.Chrome(options=options)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:49:57