java - 使用数组作为测试方法的参数

标签 java selenium selenium-webdriver testng testng-dataprovider

通常测试方法的参数如下

 @Test //Test method (dataProvider="login")
public void TestCase1(String field1, String field2)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field1);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field2);
} 

结果是click on this image

我是否可以使用数组作为参数(String[] fields),而不是特定的(String field1, String field2)作为参数? (请参阅下面的代码)

 @Test //Test method (dataProvider="login")
public void TestCase1(String[] fields)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field[0]);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field[1]);
} 

结果是click on this image

从结果来看,格式略有不同。

我的问题是这两种方法产生的含义是否相同?

最佳答案

明显有区别。

在第一种方法中,您使用字符串作为对象。

第二种方法是使用字符串数组。您需要了解数组字符串之间的基本区别。

您可以将数组引用为容器,其中包含多个相同类型的对象/事物。数组本质上显然具有固定的大小。

现在数组可以是String类型,int类型等。

当您编写 String field1 时,它是一个 String 对象。

但是当您编写String[]字段时,它是String对象的数组,这意味着它可以有多个String对象,并且您需要在初始化时声明大小。

尽管在您的场景中,两者都会产生相同的结果。话虽如此,您可以增加 String[] 的长度,并且可以使用 fields[0]、fields[1]、fields[2]、fields[4] 等上..

关于java - 使用数组作为测试方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51157855/

相关文章:

java - Integer set ADT的摊销分析(Java考试)

python - 无法通过 Selenium 在 python 中运行 PhantomJS

selenium-webdriver - 如何在运行 Selenium Selenium nightwatch.js测试时保持打开的开发人员工具?

java - PDF 文件无法从 Java 代码打开

java - 那里有任何 Java 享元模式实现吗?

java - 从对象列表生成 CSV

java - 使用 headless Chrome 时,Java 中的 Selenium 找不到元素

c# - 保存 chrome cookies Selenium

python - 通过远程驱动程序为 Firefox 设置首选项不起作用

java - 如何在java中获取当前的maven配置文件ID