数据提供者的 Java 参数问题

标签 java excel selenium automation

我想使用 Excelsheet 的多列并将其作为参数传递给 Java 方法。但它不允许添加超过 2 个参数,因为我使用了数据提供程序。现在有没有其他方法,通过它我可以有多个参数,或者我可以将它作为对象传递。我想从定义为列的工作表中填充多个数据。它抛出错误,例如“数据提供者试图传递 5 个参数,但方法 com.indracarelis.testscript.admin.NewOrder#CreateNewOrder 需要 2 个”。它用于方法的两个参数是哪两个?

最佳答案

我假设您已经在 @DataProvider 中编写了从 Excel 获取数据的代码

您可以创建一个包含该对的 HashMap 并将其传递给测试。伪代码如下:

@DataProvider(name ="abc")
public static Object[][] getData() {
    //code to read excel file goes here
    HashMap<String, String> data = new HashMap();

    data.put("Column1","data1");
    data.put("Column2","data2");
    data.put("Column3","data3");
    return new Object[] {data};
}

@Test(dataProvider="abc", dataProviderClass=TestClass.class)
public void test(HashMap<String, String> data) {
    //use data here
}

关于数据提供者的 Java 参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976067/

相关文章:

java - Selenium 网络抓取信息到列表中

java - 用java获取网站的资源文件夹

java - 使用 Seam 和 JBoss AS 访问 OpenLDAP 的最佳框架?

excel - 如何在 maatwebsite 3.1 的多个表单中使用 withEvents 应用样式?

r - 如何使用 dplyr 在具有过滤功能的函数内应用 for 循环?

java - 使用 spring 集成将 Excel 或 xls 文件发送到远程目录

c# - 如何在 Visual Studio 中设置 Selendroid?

java - 我需要显式导入 Thread 类吗?

java - 函数参数 : abstract class or interface?

python - Selenium 错误: element click intercepted:Other element would receive the click: