Selenium TestNG-具有1D阵列的数据提供程序
我写了一个小代码在谷歌搜索中搜索多个关键词。但它显示错误 我的编码如下:Selenium TestNG-具有1D阵列的数据提供程序,selenium,testng,Selenium,Testng,我写了一个小代码在谷歌搜索中搜索多个关键词。但它显示错误 我的编码如下: public class GoogleSearchDataSet { WebDriver driver; @BeforeClass public void setup () { System.setProperty("webdriver.chrome.driver","E://chromedriver.exe"); driver=new ChromeDriver(
public class GoogleSearchDataSet {
WebDriver driver;
@BeforeClass
public void setup () {
System.setProperty("webdriver.chrome.driver","E://chromedriver.exe");
driver=new ChromeDriver();
driver.get("http://www.google.com");
}
@AfterClass
public void quit(){
driver.manage().deleteAllCookies();
driver.quit();
}
@DataProvider(name="mykeywordset")
public Object[] data(){
return new Object []{ "Cat", "Dog", "hat" };
}
@Test(dataProvider="mykeywordset")
public void search(String Word){
WebElement txtSearch= driver.findElement(By.className("gbqfif"));
txtSearch.sendKeys(Word);
WebElement btnSearch = driver.findElement(By.id("gbqfba"));
btnSearch.submit();
}
}
它显示以下错误:
SKIPPED: search
org.testng.TestNGException
Data Provider public java.lang.Object[] googleSearch.GoogleSearchDataSet.data() must return either Object[][] or Iterator<Object>[], not class [Ljava.lang.Object]
已跳过:搜索
org.testng.TestNGException
数据提供程序public java.lang.Object[]googleSearch.GoogleSearchDataSet.Data()必须返回Object[]]或迭代器[],而不是类[Ljava.lang.Object]
问题正是错误消息所说的。您需要提供对象[]【】
或迭代器
第一个维度是测试用例(如果需要,也可以是测试运行)。
第二个维度是参数索引
因此,您的数据提供程序应该是:
@DataProvider(name="mykeywordset")
public Object[][] data(){
return new Object [][]{
{ "Cat" },
{ "Dog" },
{ "hat" }
};
}
如果是这样,请将答案标记为正确。这将给我25点声誉积分;)。也许我不明白你想做什么。您与我更正的数据提供程序的测试方法将被调用3次。每次都用不同的词。这就是TestNg参数化测试支持的设计方法。@Saranga,请将注释中的代码粘贴到您的问题中,使其缩进并可读?