如何从 WebElement Table 获取所有直接(直接)行
How to get all direct(immediate) rows from WebElement Table
从下面 table 我需要使用 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 中。我带着 Table WebElement。
使用下面的定位器
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();
}
您可以使用 xpath 联合运算符 (|
) 组合多个 xpath 表达式,f.e 一个处理 tbody
存在的情况,另一个处理 tbody
不存在:
//table[@id='Main']/tbody/tr | //table[@id='Main']/tr
从下面 table 我需要使用 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 中。我带着 Table WebElement。
使用下面的定位器
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();
}
您可以使用 xpath 联合运算符 (|
) 组合多个 xpath 表达式,f.e 一个处理 tbody
存在的情况,另一个处理 tbody
不存在:
//table[@id='Main']/tbody/tr | //table[@id='Main']/tr