我写了一个小代码来搜索谷歌搜索中的多个关键字。但它显示错误。
我的编码如下:
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]
答案 0 :(得分:1)
问题正是错误信息所说的。您需要提供Object[][]
或Iterator<Object []>
。
第一个维度是测试用例(如果需要,可以运行测试)。 第二个维度是参数索引。
所以你的DataProvider
应该是:
@DataProvider(name="mykeywordset")
public Object[][] data(){
return new Object [][]{
{ "Cat" },
{ "Dog" },
{ "hat" }
};
}