读取Excel工作表中的行并填入网页文本框

时间:2013-03-30 15:02:34

标签: java selenium selenium-rc selenium-ide

任何人都可以建议我如何阅读本地驱动器中的excel表单“C:\ company_names.xls”并填入网页中的文本框。

我将解释测试用例场景如下:

1)首先应在Firefox中打开网页。 2)左侧导航应点击“companylist” 3)然后应选择下拉值名称公司列表(默认情况下)。 4)然后点击创建按钮,将页面转到另一个页面,该页面有两个文本框,名称为“公司名称”公司产品“ 5)带有这两个文本框条目的excelsheet位于本地驱动器“C:\ text.xls”中。此excel表总共有100条记录。 6)两个条目公司名称和公司产品中的每一个都应从Excel工作表中获取并填充在网页的文本框中,然后单击提交按钮。 7)然后是另一个提交按钮。

我可以通过对第一个条目的两个样本值进行硬编码来创建自动化。 任何人都可以帮我解决如何从excelsheet中读取值并填充到网页的文本框中吗?

我已粘贴到目前为止我已完成的硬编码示例下方,请帮助我了解如何使用Excel工作表阅读并将数据填充到网页中。

public void submit()throws Exception
{
    selenium.start();
    selenium.setSpeed("1000");
    selenium.open("URL");
    selenium.windowFocus();
    selenium.windowMaximize();
    selenium.click("link=companylist");
    selenium.waitForPageToLoad("30000");
    selenium.select("//select[@name='comp_id']","label=company");
    selenium.waitForPageToLoad("30000");
    selenium.click("name=open");
    selenium.waitForPageToLoad("30000");
    selenium.type("id=company_names", "test5");
   selenium.type("id=company_products", "test6");
    selenium.click("css=input.button");
    selenium.waitForPageToLoad("30000");
    selenium.click("name=action");
    selenium.waitForPageToLoad("30000");
    selenium.click("name=action");
    selenium.waitForPageToLoad("30000");

}
public void tearDown() throws Exception 
{
    selenium.close();
    selenium.stop();
    selenium.refresh();

}

3 个答案:

答案 0 :(得分:0)

我会使用Apache POI库。查看POI-HSSF and POI-XSSF以获取Excel库。

答案 1 :(得分:0)

不确定您尝试了什么,但有Excel JDBC驱动程序。可能有助于从Excel读取数据。访问:http://sourceforge.net/projects/xlsql/

答案 2 :(得分:0)

public static String [] [] readData(String readfileName,String readsheetName)抛出IOException,BiffException

    {

    File infoFile = new File(readfileName);

    Workbook infoWorkBook = Workbook.getWorkbook(infoFile);

    Sheet infoSheet = infoWorkBook.getSheet(readsheetName);
    int infoRows = infoSheet.getRows();

    int infoColumns = infoSheet.getColumns();

    String[][] column = new String[infoColumns][infoRows];

    for(int i=1; i< infoRows; i++)

    {

    for(int j1=0; j1<infoColumns; j1++)

    {
    column[j1][i] = infoSheet.getCell(j1, i).getContents();

// System.out.println(column [j1] [i]);

    }

    }
    return column;

    }