如何一次一行地读取excel文件中的数据

时间:2014-07-30 08:58:30

标签: java excel automation

我希望我的程序从excel文件中读取一行(包含URL)。转到该URL并阅读下一行 - >转到URL,直到读取整个文件。

import java.io.*;
import java.util.concurrent.TimeUnit;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class readDataFromExcelFile{

 public static void main(String[] args) { 

        WebDriver driver = new FirefoxDriver();

        driver.get("http://www.google.com");

        driver.manage().window().maximize();  

        WebElement searchbox = driver.findElement(By.name("q"));

 try {

  FileInputStream file = new FileInputStream(new File("E://TestData.xlsx")); 
  XSSFWorkbook workbook = new XSSFWorkbook(file);

  XSSFSheet sheet = workbook.getSheetAt(0);

for (int i=1; i <= sheet.getLastRowNum(); i++){

        String keyword = sheet.getRow(i).getCell(0).getStringCellValue();

        searchbox.sendKeys(keyword);

        searchbox.submit();       

        driver.manage().timeouts().implicitlyWait(10000, TimeUnit.MILLISECONDS);

}

  file.close();

 } catch (FileNotFoundException fnfe) {
  fnfe.printStackTrace();
 } catch (IOException ioe) {
  ioe.printStackTrace();
 }
 }
}

但是上述程序将一次获得所有/ url。你能告诉我我应该在代码中修改什么。

1 个答案:

答案 0 :(得分:0)

在输入更多文字之前清除字段。

sendKeys()正如它所说:它发送一系列用户按下的键X&#34;到浏览器。因此,如果该字段已包含内容,则会附加新密钥。

请参阅:Clear text from textarea with selenium