如何在Webdriver中使用Xpath按完全文本匹配搜索节点

2022-09-01 02:26:40

我需要一些关于在webDriver中使用xpath搜索确切文本的帮助。

假设我有如下html.

<html><body>
  <table>
    <tr>
      <td><button>abcd</button></td>
      <td><button>abc</button></td>
    </tr>
  </table>
</body></html>

现在我想点击按钮“abc”

我使用xpath,但它总是在按钮“abcd”上执行,因为它也包含文本“abc”。在这方面,我需要一个谓词或其他一些可以搜索确切文本而不是包含文本的过程。//button[contains(text(),'abc')]

我还尝试了 、 、 和更多,但这些都没有找到识别“abc”按钮的方法。//button[matches(text(),'abc')]//button[matches($string,'abc')]//button[Text='abc')]//button[.='abc')]

我不知道我的xpath版本是否有任何问题,因为我不知道版本。但是我使用的是java 1.6 JDK。

虽然我的确切场景不是所示的示例,但需要应用类似的逻辑。

因此,任何帮助或建议将不胜感激。


答案 1

我会使用下一个xpath。你提到了函数,但我不确定语法是否正确。你也尝试使用 -- 它搜索部分文本,WebDriver 找到第一个元素。我你的情况是按钮//button[text()='abc']text()contains()<button>abcd</button>


答案 2

要找到元素“abcd”,您只需使用:

//button[contains(text(),'abcd')]

要查找“abc”,请使用normalize-space()函数,该函数将清理文本以进行比较。

//button[normalize-space(text())='abc']

推荐