为了账号安全,请及时绑定邮箱和手机立即绑定

如何找到孙(?)元素的Xpath

如何找到孙(?)元素的Xpath

人到中年有点甜 2023-08-04 10:03:24
我是 Selenium 的新手,很难弄清楚如何编写 xpath。我能够找到以下 xpath 的元素://*[@id="validation-item-0"]/div[3]/div/div[2]/ul/li[16]我如何在java中编写代码以根据上面的xpath找到以下xpath?//*[@id="validation-item-0"]/div[3]/div/div[2]/ul/li[16]/ul[1]/li/ul/li[4]作为新手,我对 ul 和 li 项目真的很困惑。任何帮助,将不胜感激。谢谢。
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

根据XPath 语法文章

.- 选择当前节点

因此,您应该能够搜索相对于前一个元素的下一个元素,例如:

WebElement element1 = driver.findElement(By.xpath("//*[@id='validation-item-0']/div[3]/div/div[2]/ul/li[16]"));
WebElement element2 = element1.findElement(By.xpath("./ul[1]/li/ul/li[4]"));

我建议摆脱这个div[3]li[16]等等,因为即使是轻微的标记变化也会破坏你的表达和测试。 请注意,您可以像后代一样使用XPath 轴,这样您的表达会更加健壮和可靠

另外,这ul[16]看起来不太好,<ul>标签代表无序列表,所以我的期望是你不应该使用索引,而应该坚持使用元素文本,例如:

WebElement myElement = driver.findElement(By.xpath("//ul[contains(text(),'element text here')]"));

其中contains()是可用于文本部分匹配的XPath 函数


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信