【发布时间】:2021-06-15 16:14:57
【问题描述】:
这是我的代码:
for(WebElement trElement : tr_collection) {
List<WebElement> td_collection = trElement.findElements(By.xpath("td"));
int col_num = 1;
String rowHeader = "<tr>";
for(WebElement tdElement : td_collection) {
rows += "<td>"+tdElement.getText()+"</td>";
col_num++;
}
String rowFooter = "</tr>\r\n";
row_num++;
scrape = rowHeader + rows + rowFooter+"\n\n";
}
输出是:
<tr><td>Airi Satou</td><td>Accountant</td><td>Tokyo</td><td>33</td><td>2008/11/28</td><td>$162,700</td><td>Angelica Ramos</td><td>Chief Executive Officer (CEO)</td><td>London</td><td>47</td><td>2009/10/09</td><td>$1,200,000</td></tr>
循环正在为第一次和最后一次迭代读取rowFooter 和rowHeader,而我试图在行的开头打印TR,当所有TDS 被提取时,然后在行的末尾作为对表格的所有行也是如此。
为什么scrape = rowHeader + rows + rowFooter+"\n\n"; 没有按要求打印?
更新
当我使用System.out.println() 打印没有String 值时,它工作正常:
for(WebElement trElement : tr_collection)
{
List<WebElement> td_collection=trElement.findElements(By.xpath("td"));
col_num=1;
System.out.println("<tr>");
for(WebElement tdElement : td_collection)
{
System.out.println("<td>"+tdElement.getText()+"</td>\r\n");
col_num++;
}
System.out.println("</tr>");
row_num++;
}
【问题讨论】:
-
By.xpath("./td") 试试看。要使用 xpath 从父级获取子元素,我们使用 .访问它们。
-
@ArundeepChohan 抱歉,我正在测试另一个使用
System.out.println打印的类。没用!! -
错误是什么?
-
@User169 :为什么
scrape = rowHeader + rows + rowFooter+"\n\n";没有按要求打印?预期值和实际值是多少?你在哪里声明了scrape变量? -
@ArundeepChohan @KunduK 预期的输出是`
而它的打印all tds 一个接一个并且在每一行的末尾TR NOT 用 TR 结束行并在没有 TR 结束标记的情况下在末尾迭代。仅在循环开始和结束时打印 TR
标签: java selenium loops for-loop arraylist