阅读了大量代码示例后,我试图找到 <tr>
元素所在后代的内容<span>
元素与参数 columnValue
匹配我只想在 columnId
中给出的索引的列中进行搜索。我在 Java 中使用 Selenium 尝试了类似的操作,但我总是得到 InvalidSelectorException: Xpath expression cannot be evaluated
。我在此 Xpath 表达式中单独测试了这两个条件,它们工作时没有任何问题。但是当我将它们与 and
结合起来时在单个 XPath 表达式中使用运算符时,将引发异常。
这是我的 Java 代码:
public WebElement getRow(final String columnId, final String columnValue) {
final List<WebElement> eleList =
getElement().findElements(
By.xpath("tbody/tr[td/span/text()='" + columnValue + "' and ./td/position()=" + (columnId + 1)"]"));
return null;
}
这是相应的 HTML 代码:
<tbody>
<tr class="even">
<td>
<span>Regionalmarkt Nord</span>
</td>
<td>
<span>777</span>
</td>
<td>
<span id="links">
<a name="delete_button" href="#" > <img title="Delete" src="/path/..."/></a>
<a id="edit_button" href="#"> <img title="Edit" src="/path/..."/></a>
</span>
</td>
</tr>
<tr>
...
</tr>
</tbody>
最佳答案
尝试这个 xpath 表达式:
"//td[" + (columnId + 1) + "]/span[text()='"+ columnValue +"']/ancestor::tr[1]"
关于java - 如何通过 Xpath 查询 Selenium 中的 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32270539/