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

如何在Karate UI中对元素执行右键/上下文点击操作

Karate框架实现元素右键点击的无键盘方案

Karate官方未内置右键点击的API,可通过以下两种无需借助键盘的方案实现需求:

方案1:调用底层Selenium Actions接口实现

Karate的driver实例可直接获取底层WebDriver对象,通过Selenium官方提供的动作类实现原生右键点击,和真实用户操作行为完全一致:

# 导入Selenium Actions类
* def Actions = Java.type('org.openqa.selenium.interactions.Actions')
# 获取当前WebDriver实例
* def webDriver = driver.getWrappedDriver()
# 定位目标元素,替换为你的元素定位表达式即可
* def targetElement = locate('#你要定位的元素id').getElement()
# 执行右键点击动作
* new Actions(webDriver).contextClick(targetElement).perform()

该方案适配绝大多数场景,能够触发浏览器原生右键菜单以及页面绑定的右键点击事件逻辑。

方案2:触发DOM原生contextmenu事件实现

如果仅需要触发页面绑定的右键点击业务逻辑,不需要唤起浏览器原生右键菜单,可直接通过JS触发对应事件,写法更简洁:

# 替换为你的元素定位表达式,直接执行JS触发右键点击事件
* script('#你要定位的元素id', "element.dispatchEvent(new MouseEvent('contextmenu', {bubbles: true, cancelable: true, button: 2}))")

补充说明

  • 两种方案均无需借助任何键盘按键操作,完全通过程序调用实现
  • 右键点击后如果需要操作自定义上下文菜单,直接按照普通元素的交互逻辑定位菜单元素操作即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:06:11