如何从WebElement表中获取所有直接(立即)行

时间:2015-06-12 16:50:42

标签: selenium xpath css-selectors

从下表中我需要使用Xpath或“css-selector”或Selenium API的直接行元素: - element.findelements。请帮忙。

<table id ="Main">
<tbody>
<tr id="row_1">
<tr id="row_1_1">
<tr id="row_1_1_1">
</tr>
</tr>
</tr>
<tr id="row_2">
</tr>
<tr id="row_3">
<tr id="row_3_1">
</tr>
</tr>
</tbody>
</table>

预期产出: -

[<tr id="row_1">,<tr id="row_2">,<tr id="row_3">]

Imp注意: - 我正在寻找通用的解决方案。有时tbody不会出现在桌子上。我正在和我一起使用Table WebElement。

2 个答案:

答案 0 :(得分:2)

您可以使用xpath union运算符(|)来组合多个xpath表达式,其中一个用于处理tbody存在时的情况,另一个用于处理tbody没有&#39的情况; t存在:

//table[@id='Main']/tbody/tr | //table[@id='Main']/tr

答案 1 :(得分:0)

使用以下定位器

By.cssSelector("table#Main > tbody > tr")

Or

By.xpath("//table[@id='Main']/tbody/tr")


List<WebElement> allRows = driver.findElements(By.cssSelector("table#Main > tbody > tr"));
for(WebElement ele : allRows) {
    //do your operation with that row
    //ele.getText();
}