当前位置: 首页 > 知识库问答 >
问题:

在Selenium WebDriver中使用excel表对不同网页内容进行数据驱动测试

姜钧
2023-03-14

共有1个答案

越姚石
2023-03-14

也许您可以尝试使用jxl库。

对于Maven,这是pom依赖项:

<dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>

在读取用户名、密码的情况下,可以使用如下所示的bean:

import java.io.File;
import java.io.IOException;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

/**
 * 
 * This is a bean to easily get users data from an excel file.
 * 
 * @author Hector Flores - hectorfb@gmail.com
 * 
 */
public class ExcelUserBean {

private String filepath = null;
private Sheet sheet = null;

/**
 * Read an excel file with users
 * 
 * @param filepath
 * @throws IOException
 */
public ExcelUserBean(String filepath) throws IOException {
    this.filepath = filepath;
    // TestData td = new TestData("SignUpUsers.xls");
    getDatafromXL(this.filepath);
}

/**
 * Get ID counter from excel file
 * 
 * @param row
 *            (0 for column title, >0 for values)
 * @return
 */
public String getId(int row) {
    return sheet.getCell(0, row).getContents();
}

/**
 * Get email form excel file
 * 
 * @param row
 *            (0 for column title, >0 for values)
 * @return
 */
public String getEmail(int row) {
    return sheet.getCell(1, row).getContents();
}

/**
 * Get name form excel file
 * 
 * @param row
 *            (0 for column title, >0 for values)
 * @return
 */
public String getName(int row) {
    return sheet.getCell(2, row).getContents();
}

private void getDatafromXL(String filepath) throws IOException {
    File inputWorkbook = new File(filepath);
    Workbook w;
    try {
        w = Workbook.getWorkbook(inputWorkbook);
        // Get the first sheet
        sheet = w.getSheet(0);

    } catch (BiffException e) {
        e.printStackTrace();
    }
    }// End parseXLTestCase

}
    ExcelUserBean userBean = new ExcelUserBean(FILEPATH);
    //ROWS
    int begin = PropertiesConfig.getUserExcelRowFrom(); <-- from
    int end = PropertiesConfig.getUserExcelRowTo();   <-- to

    for (int excelRow = begin; excelRow <= end; excelRow++) {

       driver.findElement(By.id("signfirstname")).sendKeys(userBean.getName(excelRow));
       driver.findElement(By.id("lastname")).sendKeys(userBean.getSurname(excelRow));
    }
 类似资料:
  • 在我的公司,我使用SeleniumWebDriver进行自动化测试来自动化Web应用程序,但我直接使用id、xpath和所有工具,而不遵循任何框架,因此现在我遇到了一些问题,必须设计数据驱动的框架。 请建议我如何在eclipse下设置DatadrivenFramwework。要遵循哪些步骤和所有步骤。 谢谢

  • 然而我却遇到了错误。我无法确定错误发生的确切位置,但我从结果树中获得了如下错误消息: 对于JSR223采样器 响应消息:javax.script.scriptException:源文件:内联计算:import org.apache.poi.xssf.usermodel.xssfworkbook;导入org.apache.poi.xssf.us。..“:INTEGER.parseint(vars.g

  • 我们希望在Cucumber中使用外部文件(如excel工作表)实现数据驱动测试,而不使用Cucumber提供的DataTable或Examples关键字。 这是我的特征文件 功能:验证登录页方案大纲:使用excel和数据集驱动数据 当我进入登录页面时,我会使用excel行输入用户名和密码。” 在上面的示例中,我们根据文件中提供的行索引从excel读取数据。 很难在功能文件中写入这么多记录,因为数据

  • 问题内容: 您如何在jUnit中编写数据驱动的测试? (我的定义)数据驱动测试是一种从某些外部源(文件,数据库等)读取数据,每行/文件/任何内容执行一个测试,并将结果显示在测试运行程序中的测试,就像您进行了单独的测试- 每次运行的结果将单独显示,而不是汇总显示。 问题答案: 在JUnit4中,您可以使用Parameterized testrunner进行数据驱动的测试。 它的文档记录不是很好,但是

  • 问题是,如果我使sqlService,Grails依赖项注入不起作用,它只创建一个空对象。如果我尝试将其设置为静态(如),情况也是如此。 我尝试将一个新的SqlService实例小型化,就像我的setupSpec块中所示: 这只是给出了一个错误 有人知道我如何在Spock测试中使用另一个服务类作为数据提供者吗?

  • 有没有任何一个测试REST API的使用硒网络驱动程序Maven TestNG。请分享信息或样本项目