从excel复制文本并将其粘贴到文本框中,然后单击“搜索”后的链接

时间:2015-01-07 12:21:16

标签: java selenium selenium-webdriver sikuli

我现在一直在与Selenium和Sikuli挣扎。 目前我陷入了必须从Excel中获取值并在文本框中搜索它的位置(文本框位于网页上,这是一个安全的网站,即html元素是嵌入的,在页面源上是不可见的)。 在我搜索之后,我将得到结果,如果结果出现,我将不得不点击链接,否则退出并从excel搜索下一个值。

任何人都可以帮我解决问题。 提前致谢

2 个答案:

答案 0 :(得分:1)

您可以使用Apache POI从excel读取单元格值,请尝试以下操作:

首先,如果您使用maven,请将其添加到您的pom.xml:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.9</version>
</dependency>

然后使用此代码从excel文件中获取字符串值:

public static String ReadExcel (String filename) throws InvalidFormatException {

    File excel = null;
    FileInputStream file = null;

    try {

        excel = new File("D:\\tmp\\" + filename + ".xls");
        file  = new FileInputStream(excel);

        Workbook workbook = WorkbookFactory.create(file);
        Sheet sheet = workbook.getSheetAt(0);
        Iterator<Row> rowIterator = sheet.iterator();

        while (rowIterator.hasNext()) {

            Row row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();

            while (cellIterator.hasNext()) {

                cell = cellIterator.next();

                if (!cell.getStringCellValue().isEmpty()) {


                    if (cell.getCellType() == Cell.CELL_TYPE_STRING) {

                        // your method to find data on page with param cell.getStringCellValue()
                    }
                }
            }
        }

    } catch (IOException ioe) {
        ioe.printStackTrace();
    } finally {

        if (file != null && excel != null) {

            file.close();
            //excel.delete();
        }
    }

    return null;
}

然后在每个单元格迭代上调用搜索方法,该方法将值与页面上所需的值进行比较。

希望,这会对你有帮助。

答案 1 :(得分:0)

您可以更好地解析excel文件,然后验证值。