如何使用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
相关产品推荐
相关产品推荐

