我有以下表格行。我无法使用 XPath 识别它。
<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()='Myu00a0Home']"));
mydriver.findElement(By.xpath("//tr/th[text()='My${nbsp}Home']"));
我也尝试过在 xpath 中包含()。
您可以尝试以下解决方法
//th[starts-with(text(), "My") and substring(text(), 4)="Home"]
但请注意,它只允许您跳过
识别
如果您不熟悉此语法,则表示th
节点的文本以子字符串"My"
开头,从第 4 个字符开始,文本等于"Home"
要用文本标识th
My Home
您可以尝试以下任一操作:
mydriver.findElement(By.xpath("//tr/th[contains(text(),'Home')]"));
或
mydriver.findElement(By.xpath("//tr/th[contains(.,'Home')]"));
注意:在
Java
中,它xpath
不是Xpath
我在这里回答了一个与此非常相似的问题
TLDR;
mydriver.findElement(By.xpath("//tr/th[translate(text(),'u00A0', ' ')='My Home']"));
这会将不间断空格 (
) 替换为实数空格,并将字符串与结果匹配。