gpt4 book ai didi

java - 列表元素仅拾取最后一个元素并在 Excel 中打印

转载 作者:行者123 更新时间:2023-12-02 02:47:42 25 4
gpt4 key购买 nike

我的代码是使用 webelement list 将网页中的错误消息列表打印到 Excel 中,但它仅将最后一条消息打印到 Excel 中。请帮忙。我正在使用下面的代码。

public void printoutput(int sheetnum, int row, int col, String str) throws IOException
{

wb.getSheetAt(sheetnum).getRow(row).createCell(col).setCellValue(str);
FileOutputStream fos=new FileOutputStream("/Users/paulami/Desktop/AP_Portal/TestData.xlsx");//to write in excel
wb.write(fos);
//wb.close();
}
System.setProperty("webdriver.chrome.driver", "chromedriver");
WebDriver driver = new ChromeDriver(options);
driver.get("https://TestLink");
driver.manage().window().maximize();
Thread.sleep(5000);


{

errorMessage = element.getText();
System.out.println(errorMessage);
excel.printoutput(1, row, 22, errorMessage);

}
List<WebElement> allelements=driver.findElements(By.xpath("//div[@class='ui-meui-cor']/ul/li"));
System.out.println(allelements);
String errorMessage="";
for(WebElement element : allelements)

{

errorMessage = element.getText();
System.out.println(errorMessage);
excel.printoutput(1, row, 22, errorMessage);

}

最佳答案

由于以下行,它看起来只写入最后一个值:

excel.printoutput(1, row, 22, errorMessage);

我不知道 printoutput 方法的参数是什么,但大概其中之一是cell 数字。上面的行不断地将不同的消息写入同一单元格,因此,先前的值总是被覆盖,导致仅打印最后一个值。更新后的解决方案应如下所示(伪代码):

for(WebElement element : allelements){
excel.printoutput(1, row++, 22, element.getText());
}

或者,如果您想附加内容,您首先需要检索内容并向其附加 element.getText()

更新

要将所有消息写入一个单元格,您首先需要创建一个String,其中包含逗号分隔的值并将其写入excel,例如:

String content = allelements.stream().map(e -> e.getText()).collect(Collectors.joining(", "));
excel.printoutput(1, row, 22, content);

这会将所有消息写入一行。然后,您可以使用不同的行号重复相同的方法来写入新的消息集。

关于java - 列表元素仅拾取最后一个元素并在 Excel 中打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44342110/

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