我目前正在尝试让selenium迭代表元素中的行,最后将这些行转换为CSV。我尝试了多种方法,有些让我陷入困境,有些只是抛出错误。有没有办法在查找元素以迭代所有<tr>
和<td>
标记时嵌套某种for循环?
我正在使用的表格很多,有很多嵌套的div和spans所以我会创建一个虚拟使用
<table class="charges">
<tr>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>C</td>
<td>D</td>
</tr>
<tr>
<td>E</td>
<td>F</td>
</tr>
<tr>
</tr>
</table>
到目前为止,我已经尝试过:
chargesTableRaw = driver.find_element_by_class_name("charges")
chargesTable = chargesTableRaw.text
print(chargesTable)
但这只是给我结果
A
B
C
D
E
F
我还试图对chargeTable变量进行漂亮打印,这使得它只是将换行符显示为原始代码,而不是实际丢弃一行。有没有办法在表格中遍历行本身,因为我相信这将是允许我将数据格式化为CSV的唯一方法
答案 0 :(得分:0)
按照以下步骤将表格数据导出到CSV文件
列值示例,test1#test2#test3#test4:2#3#4#5:6#2#8#1
#import com.csvreader.CsvWriter;
public void creatCSVfiles(String sheetData, String filePath) {
boolean alreadyPresent = new File(filePath).exists();
try {
CsvWriter csvOutputWrite = new CsvWriter(new FileWriterWithEncoding(filePath, CHARSET, true), ',');
if (alreadyPresent) {
//delete file
}
//split each row Data separated by : , Get the Number of Rows.
String[] colHeader = sheetData.split(":");
for (int count = 0; count < colHeader.length; count++) {
//Split each row values by # , get the number of columns.
String[] colHeadVal = colHeader[count].split("#");
for (int rowValue = 0; rowValue < colHeadVal.length; rowValue++) {
csvOutputWrite .write(colHeadVal[rowValue]);
}
csvOutputWrite .endRecord();
}
csvOutputWrite .close();
} catch (IOException e) {
//exception message
}
}
希望这能解决你的问题.. :)