gpt4 book ai didi

java - 使用 poi 和 Loop 填充 Excel 文件

转载 作者:行者123 更新时间:2023-11-30 04:02:28 24 4
gpt4 key购买 nike

我是 DDT 新手,我正在尝试将测试结果写入 Excel 文件。

这是一个简单的代码,它从 ListArray 中获取值并将它们发送到 google.translate,然后捕获结果并将它们添加到另一个列表中。当我循环遍历包含结果的列表时,它只显示捕获的最后一个结果,我的代码做错了什么?我知道我错误地循环了,但我就是想不通

任何帮助将不胜感激。这是完整的代码

public class writeFileOutPut {
WebDriver driver;
WebElement element;
String baseUrl = "http://translate.google.com/";

@BeforeSuite
public void beforeSuite() {
driver = new FirefoxDriver();
driver.get(baseUrl);
}

@Test
public void f() throws Exception{

List<String> sourceWords = new ArrayList<String>();

sourceWords.add("house");
sourceWords.add("car");
sourceWords.add("bed");

int listLength = sourceWords.size();
System.out.println("Array length is " + sourceWords.size());

for(String temp : sourceWords){
driver.findElement(By.id("gt-tl-gms")).click();
driver.findElement(By.xpath("/html/body/div[12]/table/tbody/tr/td[4]/div/div[7]/div")).click();
driver.findElement(By.id("source")).sendKeys(temp);
Thread.sleep(1000);
String transRes = driver.findElement(By.id("result_box")).getText();
List<String> transWords = new ArrayList<String>();
transWords.add(transRes);
System.out.println(transWords);

driver.findElement(By.id("source")).clear();
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet worksheet = workbook.createSheet("POI WorkSheet");

for(int i=0; i<listLength; i++){
HSSFRow row = worksheet.createRow(i);
HSSFCell cell = row.createCell(0);
cell.setCellValue(transRes);

}

FileOutputStream fos = new FileOutputStream("My/writeDataTest3.xls");
workbook.write(fos);
fos.close();

}

}

@AfterSuite
public void afterSuite() {
driver.quit();
}

}

最佳答案

根据我的理解,您试图将结果(翻译后的单词)存储到列表“transWords”中,当您迭代此列表时,您只能找到最后一个搜索。

这是因为您已将列表初始化放在 for 循环内。

List<String> transWords = new ArrayList<String>();

将此代码放在 for 循环之前,您的列表将包含所有结果。

我还建议您在完成搜索后将结果写入 Excel 表。在 for 循环之外(因为您将结果保存在 transWords 列表中,并且可以一次性将其存储到 Excel 工作表中)。

所以你的@Test可以写成如下:-

@Test
public void f() throws Exception{
//create source words list
List<String> sourceWords = new ArrayList<String>();
sourceWords.add("house");
sourceWords.add("car");
sourceWords.add("bed");
System.out.println("Array length is " + sourceWords.size());

List<String> transWords = new ArrayList<String>();

//Iterate through the sourceWords list, search for each word and add result to transWords.
for(String temp : sourceWords){
driver.findElement(By.id("gt-tl-gms")).click();
driver.findElement(By.xpath("/html/body/div[12]/table/tbody/tr/td[4]/div/div[7]/div")).click();
driver.findElement(By.id("source")).sendKeys(temp);
Thread.sleep(1000);
String transRes = driver.findElement(By.id("result_box")).getText();

transWords.add(transRes);

driver.findElement(By.id("source")).clear();
}

//create workbook
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("new sheet");

//add all the results
int i=0;
for (String transWord : transWords)
Row row = sheet.createRow((short)i++);
Cell cell = row.createCell(0);
cell.setCellValue(transword);
}

//write to file
FileOutputStream fileOut = new FileOutputStream("My/writeDataTest3.xls");
workbook.write(fileOut);
fileOut.close();
}

请告诉我这是否适合您。

关于java - 使用 poi 和 Loop 填充 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com