gpt4 book ai didi

java - 两个属性的 xpath

转载 作者:行者123 更新时间:2023-11-29 08:26:50 24 4
gpt4 key购买 nike

我在处理一个元素上两个属性的 xpath 语法时遇到了问题。

这是我的代码:

WebElement dlFileBtn = driver.findElement(
By.xpath("//*[contains(@href='/file/download/id/" + downloadID + "')]"
+ "/@*[title()='Download file']"));

这是该元素的 HTML:

<a title="Download file" alt="Right-click to download. (Hold-click Mac.)" 
target="dlfile" data-isimage="false" class="download"
href="/file/download/id/1169">Download file</a>

由于有两个具有相同 href 的按钮,我需要查询它们的 ID 和标题。感谢您的帮助!

最佳答案

contains() 函数的第一个谓词有问题。

  • contains() 接受两个参数。第一个参数是要测试的值,第二个是要搜索的值。它应该是 [contains(@href,'/file/download/id/"+ downloadID + "')]
  • 或者您可以使用 [@href='/file/download/id/"+ downloadID + "']
  • 测试整个值

XPath 的最后一部分有几个问题:/@*[title()='Download file']

  • /@* 不是对匹配的元素应用另一个谓词过滤器,而是选择所有匹配的元素属性,然后
  • [title()='Download file'] 是一个谓词过滤器,它尝试仅选择 title() 等于“下载”的属性文件”
  • 但是,没有 title() 节点选择器或函数来过滤这些属性

您可以使用多个谓词并将 XPath 的最后一部分调整为:

//*[@href='/file/download/id/" + downloadID + "'][@title='Download file']

您可以组合这些谓词过滤器并使用 andor 运算符测试同一谓词中的多个表达式。

//*[@href='/file/download/id/" + downloadID + "' and @title='Download file']

关于java - 两个属性的 xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52067186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com