Selenium webdriver 如何在TestNG中使用@DataProvider package com.xchangg.selenium.testcases.testng; 导入java.io.IOException; 导入java.util.ArrayList; 导入java.util.HashMap; 导入org.testng.annotations.DataProvider; 导入org.testng.annotations.Test; 导入com.xchangg.selenium.utility.capture屏幕截图; 导入com.xchanging.selenium.utility.ClearText; 导入com.xchangg.selenium.utility.ClickEvent; 导入com.xchangg.selenium.utility.GlobalVariables; 导入com.xchangg.selenium.utility.ReadRows; 导入com.xchangg.selenium.utility.SelectCheckBox; 导入com.xchanging.selenium.utility.SelectDropDown; 导入com.xchangg.selenium.utility.Text; 导入com.xchangg.selenium.utility.VerifyText; 公共类RegisterAccount扩展了全局变量{ @测试(dataProvider=“getData”) 公共静态无效寄存器()引发IOException{ ClickEvent.clickAt(“createAccount_xpath”); Text.enterText(“用户名”、“用户名”); Text.enterText(“密码、名称”、“机器”); Text.enterText(“confirmPassword_name”,“machans”); ClickEvent.clickAt(“安全问题名称”); 选择下拉菜单。选择(“安全问题名称”、“petname”); enterText(“securityanswer_xpath”,“vsbhs”); Text.enterText(“全名”、“钱德拉塞卡兰”); Text.enterText(“电子邮件名称”xx@gmail.com"); ClearText.clear(“dob_name”); 文本。输入文本(“dob_名称”,“11/11/1982”); 选择下拉菜单。选择(“性别\姓名”,1); 选择下拉菜单。选择(“婚姻名称”,1); 选择下拉菜单。选择(“国家名称”、“印度”); SelectCheckBox.selectchkbox(“checkbox_xpath”); ClickEvent.clickAt(“register_xpath”); VerifyText.verify(“祝贺您……您已成功注册”); 验证(“立即登录”); 截图截图(“注册成功”); ClickEvent.clickAt(“closebutton_xpath”); } @数据提供者 公共ArrayList getData()引发IOException{ ArrayList table=ReadRows.readExcel(“Sheet1”); 返回表; } }

Selenium webdriver 如何在TestNG中使用@DataProvider package com.xchangg.selenium.testcases.testng; 导入java.io.IOException; 导入java.util.ArrayList; 导入java.util.HashMap; 导入org.testng.annotations.DataProvider; 导入org.testng.annotations.Test; 导入com.xchangg.selenium.utility.capture屏幕截图; 导入com.xchanging.selenium.utility.ClearText; 导入com.xchangg.selenium.utility.ClickEvent; 导入com.xchangg.selenium.utility.GlobalVariables; 导入com.xchangg.selenium.utility.ReadRows; 导入com.xchangg.selenium.utility.SelectCheckBox; 导入com.xchanging.selenium.utility.SelectDropDown; 导入com.xchangg.selenium.utility.Text; 导入com.xchangg.selenium.utility.VerifyText; 公共类RegisterAccount扩展了全局变量{ @测试(dataProvider=“getData”) 公共静态无效寄存器()引发IOException{ ClickEvent.clickAt(“createAccount_xpath”); Text.enterText(“用户名”、“用户名”); Text.enterText(“密码、名称”、“机器”); Text.enterText(“confirmPassword_name”,“machans”); ClickEvent.clickAt(“安全问题名称”); 选择下拉菜单。选择(“安全问题名称”、“petname”); enterText(“securityanswer_xpath”,“vsbhs”); Text.enterText(“全名”、“钱德拉塞卡兰”); Text.enterText(“电子邮件名称”xx@gmail.com"); ClearText.clear(“dob_name”); 文本。输入文本(“dob_名称”,“11/11/1982”); 选择下拉菜单。选择(“性别\姓名”,1); 选择下拉菜单。选择(“婚姻名称”,1); 选择下拉菜单。选择(“国家名称”、“印度”); SelectCheckBox.selectchkbox(“checkbox_xpath”); ClickEvent.clickAt(“register_xpath”); VerifyText.verify(“祝贺您……您已成功注册”); 验证(“立即登录”); 截图截图(“注册成功”); ClickEvent.clickAt(“closebutton_xpath”); } @数据提供者 公共ArrayList getData()引发IOException{ ArrayList table=ReadRows.readExcel(“Sheet1”); 返回表; } },selenium-webdriver,testng,Selenium Webdriver,Testng,现在我想使用这个数据提供程序,从xls获取值,并在@Test部分中使用它 有人能帮忙吗 如果我用的话,这种方法效果很好 package com.xchanging.selenium.testcases.testng; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import org.testng.annotations.DataProvider; import org.te

现在我想使用这个数据提供程序,从xls获取值,并在@Test部分中使用它

有人能帮忙吗

如果我用的话,这种方法效果很好

package com.xchanging.selenium.testcases.testng;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import com.xchanging.selenium.utility.CaptureScreenShot;
import com.xchanging.selenium.utility.ClearText;
import com.xchanging.selenium.utility.ClickEvent;
import com.xchanging.selenium.utility.GlobalVariables;
import com.xchanging.selenium.utility.ReadRows;
import com.xchanging.selenium.utility.SelectCheckBox;
import com.xchanging.selenium.utility.SelectDropDown;
import com.xchanging.selenium.utility.Text;
import com.xchanging.selenium.utility.VerifyText;

public class RegisterAccount extends GlobalVariables {

    @Test(dataProvider = "getData")
    public static void register() throws IOException {
        ClickEvent.clickAt("createAccount_xpath");
        Text.enterText("username_name", "username");
        Text.enterText("password_name", "machans");
        Text.enterText("confirmPassword_name", "machans");
        ClickEvent.clickAt("securityquestion_name");
        SelectDropDown.select("securityquestion_name", "petname");
        Text.enterText("securityanswer_xpath", "vsbhss");
        Text.enterText("fullName_name", "Chandrasekaran");
        Text.enterText("email_name", "xx@gmail.com");
        ClearText.clear("dob_name");
        Text.enterText("dob_name", "11/11/1982");
        SelectDropDown.select("gender_name", 1);
        SelectDropDown.select("marital_name", 1);
        SelectDropDown.select("country_name", "India");
        SelectCheckBox.selectchkbox("checkbox_xpath");
        ClickEvent.clickAt("register_xpath");
        VerifyText.verify("Congratulations.. You have registered successfully");
        VerifyText.verify("Login now");
        CaptureScreenShot.screenshot("Registration_Successful");
        ClickEvent.clickAt("closebutton_xpath");
    }

    @DataProvider
    public ArrayList<HashMap> getData() throws IOException {
        ArrayList<HashMap> table = ReadRows.readExcel("Sheet1");
        return table;
    }
}
ArrayList table=ReadRows.readExcel(“Sheet1”);
表.get(0).get(“电子邮件”)

但我想使用@DataProvider

如果要使用
数据提供程序
注释。带注释的方法必须返回一个
对象[]【】
,其中可以为每个对象[]分配测试方法的参数列表

您可以尝试以下方法:

ArrayList<HashMap> table = ReadRows.readExcel("Sheet1");
table.get(0).get("email")
您的测试方法可以使用这些数据

@DataProvider
public Object[][] getData() throws IOException {
    Object[][] data = new Object[3][2] // based on the size of your excel rows & cols.
    // Write the code to read data from excel and store.
    data[][] = //your Code. 
    return data;
}
有些是如何管理的

//Lets say your Object[][] data returns 2 arguments.
@Test(dataProvider="getData")
public void testMethod(firstArgument, secondArgument){
    // your code to use the arguments supplied by data.
}
@Test(dataProvider=“getData”)
公共静态无效寄存器(ArrayList表)引发IOException{
}

这就解决了我的问题。

我有这个方法ReadRows.readExcel(“Sheet1”);要检索excel工作表。。我可以用一些逻辑来获取这个值吗?我已经用过这个逻辑,我可以用ReadRows.readExcel(“Sheet1”)检索数据。。唯一的问题是如何自定义以在DataProvider中使用它。您需要自定义代码,以便它返回一个二维数据数组,即(行和列)。
@Test(dataProvider="getData")
    public static void register(ArrayList<HashMap> table) throws IOException {


}