0

那是我想用硒验证的来源:

<tr class="myclass">
    <td class="column" style="width:50%"> Key </td>
    <td style="width:50%"> Value </td>
    <td style="width:50%"> &nbsp; </td>
</tr>

我想验证他的“价值观”一词是否包含在其中。

以下语句总是返回:“Key”而不是“Values”

driver.findElement(By.xpath("//tr[td[contains(text(), 'Key')]]/td")).getText();

我究竟做错了什么?如何获取 xpath 表达式的文本?

4

3 回答 3

1

这里试试这个

driver.findElement(By.xpath("//tr[@class='myclass']/td[1]")).getText();

表中的所有列都是兄弟。如果您在没有数组的情况下调用它们,它将返回第一个的值。如果 td[1] 不起作用,请尝试 td[2]。

于 2012-08-30T13:49:35.720 回答
0

尝试使用 CSS 选择器

driver.findElement(By.cssselector(".myclass > td[style='width:50%']")).getText();

于 2012-08-30T16:01:01.293 回答
0

为什么不只是这样,它不会取决于它在什么位置,只是它存在?

//tr/descendant::td[contains(text(), 'Value')]

或在以下位置执行 FindElements:

//tr[@class='myclass']/td

然后遍历它们,确保出现“值”。

于 2012-08-30T13:51:41.147 回答