在阅读了很多代码示例之后,我试图找到<tr>
元素,其中后代<span>
元素的内容与参数columnValue
相匹配,我只想在列中使用columnId
中给出的索引进行搜索。我在Java中使用Selenium尝试过类似的东西,但我总是得到一个InvalidSelectorException: Xpath expression cannot be evaluated
。我在这个Xpath表达式中分别测试了两个条件,并且它们没有任何问题。但是,当我在一个XPath表达式中将它们与and
运算符结合使用时,将抛出异常。如何通过Xpath在Selenium中查询HTML元素?
这是我的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>
很高兴能有帮助! – drkthng