我有一个网络元素列表,我需要将列表中的每个元素写到Excel中的单独单元格中。当前,例如当我在列表中有2个元素时,第二个元素将删除单元格中的第一个元素。
List<WebElement> products = driver.findElements(By.xpath("//label[contains(text(),'Size')]"));
for (WebElement product:products){
SetCellData(product.getText(),1,0);
答案 0 :(得分:1)
所以这取决于您想要数据的方式。
我猜您正在使用Apache Poi。或类似的东西
您的循环不会在工作簿中移动,而只会写入相同的单元格
这是我从教程中提取的一个示例
//This data needs to be written (Object[])
Map< String, Object[] > empinfo =
new TreeMap<>();
empinfo.put( "1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
empinfo.put( "2", new Object[] { "tp01", "Gopal", "Technical Manager" });
empinfo.put( "3", new Object[] { "tp02", "Manisha", "Proof Reader" });
empinfo.put( "4", new Object[] { "tp03", "Masthan", "Technical Writer" });
empinfo.put( "5", new Object[] { "tp04", "Satish", "Technical Writer" });
empinfo.put( "6", new Object[] { "tp05", "Krishna", "6546984651685465132198651324984351" });
//Iterate over data and write to sheet
Set< String > keyid = empinfo.keySet();
int rowid = 0;
for (String key : keyid) {
row = spreadsheet.createRow(rowid++);
Object [] objectArr = empinfo.get(key);
int cellid = 0;
for (Object obj : objectArr) {
Cell cell = row.createCell(cellid++);
cell.setCellValue((String)obj);
}
}
因此,如果您希望每个元素都位于1行中。您将Cell cellToFill = row.createCell(nextCellColNumber)
如果您想要一个垂直列表,将在行创建单元格(0)并在那里设置值