我已经开始使用selenium从使用Javascript的网站收集数据。我已经设法达到了能够从表中选择单元格的程度,但我现在希望能够选择" Individual"来自每个单元格的字符串,例如:
这是表格中的一个单元格:
<tr data-ig="x:360964033.17:adr:0:tag:" tag="" adr="0" type="row">
<td idx="0" adr="0" type="cell">2014-11-02 21:15:00</td>
<td idx="1" adr="1" type="cell">AMALT</td>
<td idx="2" adr="2" type="cell">60007</td>
<td idx="3" adr="3" type="cell">107115</td>
<td class="ig9a63765d">1</td>
<td idx="9" adr="9" type="cell">576833</td>
</tr>
我希望能够单独选择单元格中的<td idx="0" adr="0" type="cell">2014-11-02 21:15:00</td>
行,这怎么可能?
我希望能够做这样的事情List<WebElement> allRows = table.findElements(By.tagName("idx=0"));
,但这不起作用。
我像这样收集整个表格和单元格:
// Now get all the TR elements from the table
List<WebElement> allRows = table.findElements(By.tagName("tr"));
// And iterate over them, getting the cells
for (WebElement row : allRows) {
List<WebElement> cells = row.findElements(By.tagName("td"));
// Print the contents of each cell
for (WebElement cell : cells) {
System.out.println(cell.getText());
}break;
}
谢谢。
更新,表格布局已更改为:
<tr data-ig="x:360964033.17:adr:0:tag:" tag="" adr="0" type="row">
<td>2014-11-04 23:00:00</td>
<td idx="1" adr="1" type="cell">gasdjjhg</td>
<td idx="2" adr="2" type="cell">11344</td>
<td idx="3" adr="3" type="cell">14500</td>
<td idx="4" adr="4" type="cell">saddasd</td>
<td></td>
<td>sdsed</td>
<td>dsfdsf</td>
<td class="ig9a63765d">1</td>
<td></td>
</tr>
表格布局在不断变化?
答案 0 :(得分:0)
在您的示例中,idx
不是标记,而是属性。在Selenium中,您可以使用XPath:
table.findElement(By.xpath("//td[@idx=0]"))
答案 1 :(得分:0)
试试这段代码:
注意:假设'data-ig'值不会改变。
List allRows = table.findElements(By.xpath("//tr[@data-ig='x:360964033.17:adr:0:tag:']/td")); for(WebElement row: allRows){ System.out.println(row.getText()); }