我有下表行。我无法使用XPath识别 th 。
<tr>
<th>My Home</th>
<th>My School</th>
<th>Home</th>
</tr>
我试过了:
mydriver.findElement(By.xpath("//tr/th[text()='My Home']"));
mydriver.findElement(By.xpath("//tr/th[text()='My\u00a0Home']"));
mydriver.findElement(By.xpath("//tr/th[text()='My${nbsp}Home']"));
我也在xpath中尝试了contains()。
答案 0 :(得分:1)
您可以尝试以下解决方法
//th[starts-with(text(), "My") and substring(text(), 4)="Home"]
但请注意,它只允许您跳过
身份识别
如果您不熟悉此语法,则表示 th
节点的文本以子字符串"My"
开头,从第4个字符开始,文本等于"Home"
答案 1 :(得分:1)
我已经回答了一个非常类似的问题here
tldr;
mydriver.findElement(By.xpath("//tr/th[translate(text(),'\u00A0', ' ')='My Home']"));
这会将不间断空格(
)替换为实空格,并将字符串与结果匹配。
答案 2 :(得分:0)
要将th
标识为 My Home
,您可以尝试以下任一方式:
mydriver.findElement(By.xpath("//tr/th[contains(text(),'Home')]"));
OR
mydriver.findElement(By.xpath("//tr/th[contains(.,'Home')]"));
注意:在
Java
中,xpath
不是Xpath