如何在Karate UI中点击带有aria-hidden="true"属性的Web元素?
针对你遇到的点击无响应问题,这里提供几个可行的解决方法:
精准定位最后一个目标元素
确保你定位的是DOM中最后一个带有aria-hidden="true"的div元素,推荐使用以下选择器:- CSS选择器:
div[aria-hidden='true']:last-of-type - XPath表达式:
(//div[@aria-hidden='true'])[last()]
定位后再执行点击,示例代码:
locate("div[aria-hidden='true']:last-of-type").click()- CSS选择器:
强制触发点击操作
Karate的默认click()方法会校验元素的可见性,而aria-hidden="true"的元素可能被判定为不可见。可以传入true参数强制跳过可见性检查:locate("(//div[@aria-hidden='true'])[last()]").click(true)通过JavaScript直接执行点击
如果Karate的内置方法失效,直接调用原生JavaScript触发元素的点击事件,不受可见性限制:script("document.querySelectorAll('div[aria-hidden=\"true\"]')[document.querySelectorAll('div[aria-hidden=\"true\"]').length - 1].click()")先滚动到元素位置再点击
若元素被其他组件遮挡,先将元素滚动到视图范围内再执行强制点击:locate("div[aria-hidden='true']:last-of-type").scrollIntoView().click(true)
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

