Selenium IDE无target能否使用sendkeys() 有无替代无目标按键方案
Selenium IDE无target触发按键操作的可行方案
原生send keys命令强制要求指定target参数,无法直接留空使用,你可以通过以下两种方法实现全局按键触发:
- 方法1:使用内置的
send keys to active element命令
该命令不需要手动指定target,会自动将按键事件发送到页面当前激活的元素上,如果页面全局处于聚焦状态,就相当于全局触发按键:操作步骤:命令栏选择
send keys to active element,Value栏直接填写需要发送的内容即可,特殊按键使用${KEY_按键名}格式,比如回车填写${KEY_ENTER},Tab键填写${KEY_TAB},组合键Ctrl+A填写${KEY_CTRL}a - 方法2:通过执行JS脚本手动派发全局键盘事件
如果上述命令不符合你的场景需求,可以调用JS直接在document层面触发键盘事件,完全不需要绑定特定元素:
选择execute script命令,Value栏填入对应JS代码即可,示例如下:
修改// 示例:触发全局回车按键 document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true })); document.dispatchEvent(new KeyboardEvent('keyup', { key: 'Enter', bubbles: true }));key字段的取值即可触发不同的按键,支持所有标准键盘按键值
注意事项
- 执行按键操作前可以先运行一次
focus命令,target指定为css=body,确保页面处于聚焦状态,避免按键事件被浏览器地址栏等外部区域拦截 - 如果页面有自定义的键盘事件监听逻辑,建议给KeyboardEvent加上
bubbles: true参数,保证事件能冒泡到绑定监听的元素上
内容的提问来源于stack exchange,提问作者Antoni
相关产品推荐
相关产品推荐

