这是我想用selenium验证的来源:
<tr class="myclass">
<td class="column" style="width:50%"> Key </td>
<td style="width:50%"> Value </td>
<td style="width:50%"> </td>
</tr>
我想验证他的词语“值”是否包含在那里。
以下语句始终返回:“Key”而不是“Values”
driver.findElement(By.xpath("//tr[td[contains(text(), 'Key')]]/td")).getText();
我做错了什么?如何获取xpath表达式的文本?
答案 0 :(得分:1)
这里试试这个
driver.findElement(By.xpath("//tr[@class='myclass']/td[1]")).getText();
表中的所有列都是兄弟。如果你在没有数组的情况下调用它们,它将返回第一个值。如果td [1]不起作用,请尝试td [2]。
答案 1 :(得分:0)
为什么不这样呢?这样,它不会依赖于它所处的位置,只是它存在?
//tr/descendant::td[contains(text(), 'Value')]
或执行FindElements:
//tr[@class='myclass']/td
然后循环遍历它们,确保“价值”出现。
答案 2 :(得分:0)
尝试使用css选择器
driver.findElement(By.cssselector(".myclass > td[style='width:50%']")).getText();