我们如何传递比使用DataProvider要求我们做的方法更少的参数?

时间:2018-05-05 15:00:29

标签: java selenium-webdriver testng-dataprovider

我们如何传递的参数少于方法要求我们使用DataProvider做的参数?

我将尝试解释,举一个例子,我创建了一个名为fetchData的方法(字符串对象类型,字符串对象值,字符串locatortype,字符串locatorValue,字符串消息);

我正在从Excel文件中检索数据,在第一行我只传递了两个参数,而不是所有五个参数都使用DataProvider注释,仅在第四行我传递了所有参数,如方法要求。我没有没有遇到任何错误,它完全正常。

我的理解是这样,你不能传递比方法要求你做的更少的参数,显然它可以使用DataProvider注释,但是如何?

className.perform(row.getCell(1), row.getCell(2),row.getCell(3), row.getCell(4));

ExcelFile

中第一行的2列和3列中没有数据
perform(GOTOURl,'','',URL) 

public static void perform(String operation, String objectName, String objectType, String val)
{
    System.out.println("");
    switch (operation.toUpperCase())
    {
        case "CLICK":
            driver.findElement(this.getObject(p, objectName, objectType)).click();
            break;
        case "SETTEXT":
            driver.findElement(this.getObject(p, objectName, objectType)).sendKeys(val);
            break;
        case "GOTOURL":
            driver.get(p.getProperty(val));
            break;
        case "GETTEXT":
            driver.findElement(this.getObject(p, objectName, objectType)).getText();
            break;
        default:
            break;
    }
}

1 个答案:

答案 0 :(得分:0)

您仍在传递所有4个参数,只是objectNameobjectType作为空字符串传递。