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

如何使用Karate自动化测试框架验证Tooltip文本?

用Karate框架验证鼠标悬停后的Tooltip文本

Karate的UI测试模块可以轻松处理鼠标悬停并验证Tooltip文本,分两种常见场景给出实现方法:

场景1:Tooltip是目标元素的title属性

很多基础Tooltip直接绑定在目标元素的title属性上,悬停时浏览器自动显示,这种情况直接获取属性值即可:

Scenario: 验证基于title属性的Tooltip
  Given driver '你的测试页面URL'
  # 定位目标元素并执行鼠标悬停
  * mouse().move('css=.hover-target') # 替换成你的元素选择器(css/xpath都可以)
  # 获取title属性值
  * string actualTooltip = locate('css=.hover-target').attribute('title')
  # 验证文本是否符合预期
  * match actualTooltip == '你预期的Tooltip提示文本'

场景2:Tooltip是动态显示的独立DOM元素

有些自定义Tooltip是悬停后才渲染的独立DOM节点,需要先等待元素出现,再获取其文本:

Scenario: 验证自定义动态Tooltip
  Given driver '你的测试页面URL'
  # 定位目标元素并悬停
  * mouse().move('xpath=//button[@id="hover-btn"]')
  # 等待Tooltip元素加载完成(避免因渲染延迟导致定位失败)
  * waitFor('css=.custom-tooltip') # 替换成你的Tooltip元素选择器
  # 获取Tooltip的文本内容
  * string actualTooltip = locate('css=.custom-tooltip').text
  # 断言文本匹配
  * match actualTooltip contains '包含的预期文本片段' # 也可以用==做完全匹配

特殊情况处理:JavaScript驱动的Tooltip

如果遇到用JS事件触发的Tooltip,mouse().move()不生效的话,可以直接模拟mouseover事件:

* script("arguments[0].dispatchEvent(new MouseEvent('mouseover', {bubbles: true}))", locate('css=.js-tooltip-target'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:35:13