sou*_*vik 14 java xpath webdriver
关于在webDriver中使用xpath搜索确切文本,我需要一些帮助.
假设我有html如下..
<html><body>
<table>
<tr>
<td><button>abcd</button></td>
<td><button>abc</button></td>
</tr>
</table>
</body></html>
Run Code Online (Sandbox Code Playgroud)
现在我想点击"abc"按钮
我使用xpath,//button[contains(text(),'abc')]但它始终在按钮"abcd"上执行,因为它还包含文本"abc".在这方面,我需要一个谓词或一些其他程序,可以搜索确切的文本而不是包含文本.
我也尝试过//button[matches(text(),'abc')], //button[matches($string,'abc')]和//button[Text='abc')],//button[.='abc')]以及更多,但这些都没有确定"abc"按钮.
我不知道我的xpath版本是否有任何问题,因为我不知道该版本.但我正在使用java 1.6 JDK.
虽然我的确切场景不是显示的示例,但需要应用类似的逻辑.
因此,任何帮助或建议将受到高度赞赏.
oly*_*lyv 28
我会使用下一个xpath //button[text()='abc'].你提到过text()函数,但我不确定语法是否正确.您也尝试使用contains()- 它搜索部分文本,WebDriver找到第一个元素.我的情况是<button>abcd</button>按钮
小智 14
对于精确搜索:
button[text()='abc']
Run Code Online (Sandbox Code Playgroud)
对于模式匹配搜索:
button[starts-with(.,'abc')]
Run Code Online (Sandbox Code Playgroud)
小智 8
要查找元素“abcd”,您只需使用:
//button[contains(text(),'abcd')]
Run Code Online (Sandbox Code Playgroud)
要查找“abc”,请使用 normalize-space() 函数,该函数将清理您的文本以进行比较。
//button[normalize-space(text())='abc']
Run Code Online (Sandbox Code Playgroud)
//button[.="abc"]
Run Code Online (Sandbox Code Playgroud)
相等运算符之前的点将进行文本比较。另一个示例/PROJECT[.="MyProject"]来自xPath Java 教程。
| 归档时间: |
|
| 查看次数: |
46114 次 |
| 最近记录: |