【发布时间】:2020-08-08 06:17:52
【问题描述】:
我已经尝试了以下代码,这些代码将 Excel 读取文件数据复制到 Excel 写入数据文件,但我希望 Web 元素到 Excel 写入数据文件。希望使用 Selenium Java 将每个 tr 和 td 数据转换为 Excel 文件。在同一个类中读取 excel 文件并希望将 web 元素数据写入 Excel 文件。
public class NewTest {
public static String driverPath = "D:/Testing/Drivers/";
public static WebDriver driver;
public static void main(String[] args) throws IOException{
System.out.println("launching chrome browser");
System.setProperty("webdriver.chrome.driver", driverPath+"chromedriver.exe");
driver = new ChromeDriver();
driver.navigate().to("anyurl");
WebElement id = driver.findElement(By.xpath("//input[@id='txt_username']"));
id.sendKeys("anyusername");
WebElement pass = driver.findElement(By.xpath("//input[@id='txt_password']"));
pass.sendKeys("anypass");
driver.findElement(By.id("txtCaptcha")).click();
WebDriverWait wait = new WebDriverWait(driver,100);
new WebDriverWait(driver,100).until(ExpectedConditions.urlToBe("anyurl"));
driver.findElement(By.linkText("Exit")).click();
driver.get("anyurl");
FileInputStream fs = new FileInputStream("D:\\Test.xls"); //or xlsx
XSSFWorkbook workbook = new XSSFWorkbook(fs);
XSSFSheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
Cell cell = row.getCell(0);
driver.findElement(By.xpath("//form[@id=\'aspnetForm\']/div[3]/div/div/table/tbody/tr/td/div/input")).clear();
driver.findElement(By.xpath("//form[@id=\'aspnetForm\']/div[3]/div/div/table/tbody/tr/td/div/input")).sendKeys(sheet.getRow(0).getCell(0).getStringCellValue());
driver.findElement(By.xpath("//form[@id=\'aspnetForm\']/div[3]/div/div/table/tbody/tr/td/div/input[2]")).clear();
driver.findElement(By.xpath("//form[@id=\'aspnetForm\']/div[3]/div/div/table/tbody/tr/td/div/input[2]")).sendKeys(sheet.getRow(0).getCell(1).getStringCellValue());
driver.findElement(By.xpath("//input[@id=\'ctl00_ContentPlaceHolder1_btn_submit\']")).click();
WebElement element = driver.findElement(By.xpath("//*tr[@id='ctl00_ContentPlaceHolder1_tr_data']/td/div/table/tbody"));
List<WebElement> tbdy = element.findElements(By.tagName("tbody"));
List<WebElement> tr = tbdy.get(0).findElements(By.tagName("tr"));
try {
String filename = "D:\\Test.xls";
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("FirstSheet");
CellStyle style = workbook.createCellStyle();//Create style
HSSFRow row = sheet.createRow(0);
}
for (int i = 0; i < tr.size(); i++) {
HSSFRow row2 = sheet.createRow(i+1);
List<WebElement> td = tr.get(i).findElements(By.tagName("td"));
for (int j = 0; j < td.size(); j++) {
td.get(j).getText();
row2.createCell(j).setCellValue(td.get(j).getText());
}
}
FileOutputStream fileOut = new FileOutputStream(filename);
workbook.write(fileOut);
fileOut.close();
System.out.println("Your excel file has been generated!");
}
}```
【问题讨论】:
-
在任何人可以帮助您解决此问题之前,您需要稍微清理一下问题。目前尚不清楚您要说什么。请尽量使用完整的思想和句子。技术问题很难回答,当我们无法正确理解您的问题时,就无法回答。
标签: selenium selenium-webdriver apache-poi