我有以下代码:
WebElement table = a_chromeWebDriver.findElement(By.className("stats-table"));
List<WebElement> allRows = table.findElements(By.tagName("tr"));
system.out.println(allRows.size());
for (WebElement row : allRows) {
ArrayList<WebElement> cells = (ArrayList<WebElement>) row.findElements(By.tagName("td"));
...
我正在类似的html上执行此代码,如下所示:
<table id="table-type-1" class="stats-table stats-main table-1">
<thead>
<tr class="main">
<th class="aaaa" data-type="rank" title="Rank">
</th>
A number of headers here...
</tr>
</thead>
<tbody title="">
<tr bla bla bla>
<td class="bla bla bla" title="bla bla bla>1.</td>
<td class="bla bla bla"></td>
<td class="bla bla bla">36</td>
<td class="bla bla bla">28</td>
<td class="bla bla bla">3</td>
</tr>
<td class="bla bla bla" title="bla bla bla>1.</td>
<td class="bla bla bla"></td>
<td class="bla bla bla">45</td>
<td class="bla bla bla">fnf</td>
<td class="bla bla bla">kfkfk</td>
</tr>
.
.
.
allRows size为我提供了正确的行数。出于某种原因,我得到cells=null。我也试过了。xpath(“td”),但没有任何用处。
超文本标记语言
通常您只能看到<代码>
正确的方法是首先确定这些部分中的每一部分,然后通过它们的子元素进行处理。
// Get the table
WebElement table = a_chromeWebDriver.findElement(By.id("table-type-1"));
// Get the thead in table
WebElement thead = table.findElement(By.tagName("thead"));
// Get the tbody in table
WebElement tbody = table.findElement(By.tagName("tbody"));
// Get all headers in thead
List<WebElement> allHeaders = thead.findElements(By.tagName("th"));
// Get all rows in tbody
List<WebElement> allRows = tbody.findElements(By.tagName("tr"));
// Get all cells for each row in allRows
for(WebElement row : allRows) {
List<WebElement> allCells = row.findElements(By.tagName("td"));
int rowNum = allRows.indexOf(row) + 1;
System.out.println("Row no. " + rowNum + " has " + allCells.size() +" cells.");
}
首先,找到所有行,然后遍历它们:
List<WebElement> allRows = driver.findElements(By.cssSelector("#table-type-1 > tbody > tr"));
for(WebElement row : allRows){
List<WebElement> cells = row.findElements(By.tagName("td"));
System.out.println("Cell count: " + cells.size());//cell count for a row
}
使用此代码循环时:
for (WebElement row : allRows) {
ArrayList<WebElement> cells = (ArrayList<WebElement>) row.findElements(By.tagName("td"));
System.out.println("CellCount " + cells.size());
}
您将看到输出为:
CellCount 0
CellCount 4
CellCount 4
这是因为您的代码拾取的第一行来自
您可以通过将allRows元素更改为以下内容来实现这一点:
List<WebElement> allRows = table.findElements(By.xpath("tbody//tr"));
null 如您所料,A3将导致。现在将A2的格式更改为会计,使用小数点后2位。A2现在读,但是基础值仍然是,所以A3仍然是。 VBA 制作一个新模块并添加以下函数: null 和具有相同的基础值,但和没有,尽管它们都是使用和的方法计算的。 ()中的表达式正在访问和的实际基础值。如何在VBA中访问这些值?
问题内容: 我正在尝试使用Excel中电子表格中的数据,但始终会出现此错误,已经尝试将工作表格式化为文本和数字格式,但该错误仍然存在。 我看到一个使用它的人解决了,但是我不知道我在代码中适合该段落的地方。 问题答案: 在这种情况下,格式化程序可以正常工作。
试图获取特定标题下的所有td(单元格) HTML: 方法: 实际结果: java.lang.IndexOutOfBoundsException:索引0超出长度0的边界 预期结果: 返回一个
问题内容: 我正在使用openpyxl读取Excel文件。我想从“ xlsx”文件中获取单元格颜色。我试图获得颜色,以便: 我得到“ 11L”,但我需要得到rgb颜色,我该怎么办? 问题答案: 看起来工作表正在使用内置的颜色索引。这些的映射位于 11L对应于0000FF00(十六进制),其rgb元组将为绿色(0,255,0)。
有人能给我一个解决方案,我可以在单元格为空时读取应用到单元格的样式吗? 谢了。
我希望我的swift代码在每次按下按钮时都添加一个新的tableview单元格。你可以在下面的gif中看到我想要的东西。这段代码应该在func-tableView(_tableView:UITableView,cellForRowAt-indexPath:indexPath)中添加按钮- 在此输入图像描述