我以为WebElement.findElement()
只搜索了元素下方的DOM,
但它显然搜索整个DOM。我在HTML中有这样的东西:
<table>
<tbody>
<tr>
<td>Some Text</td>
</tr>
<tr class="network">
<td><input ...></td>
<tr>
<td>Some More Text</td>
</tr>
<tr class="network">
<td><input ...></td>
</tbody>
</table>
硒代码如下:
List<WebElement> tableRows =
radioTable.findElements(By.CssSelector("tbody > tr"));
for (WebElement row : tableRows) {
String s = row.getAttribute("class");
if (s.equals("network")) {
currentGroup.add(row.findElement(By.CssSelector(".network")));
}
然而,row.findElement()
调用从DOM的顶部进行搜索
每次都找到相同的首字母。
如果只在WebElement.findElement()
下搜索,那将非常有用
当前元素。
答案 0 :(得分:0)
好吧,我们可以获取行元素的索引,然后使用第 n 个子选择器我们可以这样选择子元素。
List <WebElement> tableRows =
radioTable.findElements(By.CssSelector("tbody > tr"));
tableRows.forEach((row, index) => {
String s = row.getAttribute("class");
if (s.equals("network")) {
currentGroup.add(row.findElement(By.CssSelector(`.network:nth-child(${index + 1}) .network`)));
}
})