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

91、92版Chrome Driver下Robot Framework的Press Keys等关键字失效问题

问题成因

Chrome 91/92版本对应的ChromeDriver调整了原生交互API的实现逻辑,是两个关键字失效的核心原因:

  • Selenium底层依赖的W3C Webdriver协议在Chrome 91+版本中默认强制启用,废弃了原有老版本兼容的非标准OOP(Out-of-Process)交互逻辑,Robot Framework的SeleniumLibrary旧版本内置的关键字封装未适配这一变更
  • Press Keys关键字旧版本实现依赖了非W3C标准的元素输入接口,ChromeDriver 91+对未严格符合W3C规范的输入请求直接拦截不执行
  • Scroll Element into view关键字旧版本默认调用的是Chrome私有滚动API,91+版本中该API权限被收紧,非DevTools官方调用路径无法触发滚动操作
解决方案

1. 升级依赖库版本

首先升级核心依赖到适配版本,从底层兼容Chrome 91+的协议要求:

  • 升级SeleniumLibrary到5.1.3及以上版本,该版本已经完成了Chrome 91+版本的W3C协议适配
  • 同步升级Selenium基础库到3.141.0及以上版本,避免底层API不匹配问题
    升级命令如下:
pip install --upgrade robotframework-seleniumlibrary>=5.1.3 selenium>=3.141.0

2. 关键字适配调整

如果升级后仍有偶发失效场景,可以替换为JS调用的兼容实现,稳定性更高:

  • 针对Press Keys关键字:特殊按键(回车、删除等)不生效时,可通过Execute Javascript直接触发按键事件,示例:
Execute Javascript    document.getElementById('目标元素ID').dispatchEvent(new KeyboardEvent('keydown', {key: 'Enter', code: 'Enter', which: 13}))
  • 针对Scroll Element into view关键字:优先使用带对齐参数的调用格式,或者直接用JS实现滚动,示例:
# 方式1:使用适配后的关键字,指定对齐方式
Scroll Element into view    目标元素定位    align_to_top=true
# 方式2:JS实现滚动,兼容性最高
Execute Javascript    arguments[0].scrollIntoView({block: 'center', behavior: 'smooth'})    目标元素定位

3. Chrome启动参数调整(可选)

如果上述操作后仍有问题,可以在启动Chrome时强制开启W3C兼容参数:

${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
Call Method    ${chrome_options}    add_argument    --w3c
Call Method    ${chrome_options}    add_experimental_option    w3c    ${True}
Create Webdriver    Chrome    chrome_options=${chrome_options}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 22:06:01