Selenium 使用@Dataprovider注释(TestNG)从文本(.txt)文件获取数据
通常我们对Excel文件使用Selenium 使用@Dataprovider注释(TestNG)从文本(.txt)文件获取数据,selenium,selenium-webdriver,testng,Selenium,Selenium Webdriver,Testng,通常我们对Excel文件使用@dataProvider;如果文本(.txt)文件是这样,任何示例都会很有帮助。。非常感谢您的帮助 我看不出它不起作用的原因。dataprovider函数与任何其他函数类似(就其获取数据的方式而言)。您只需确保返回一个对象[]. 在我的情况下,我从我的@dataprovider中的.properties文件中获取凭据。 我是这样做的。您可以轻松地将其转换为从任何内容读取: @DataProvider(name="creds") protected Objec
@dataProvider
;如果文本(.txt)文件是这样,任何示例都会很有帮助。。非常感谢您的帮助 我看不出它不起作用的原因。dataprovider函数与任何其他函数类似(就其获取数据的方式而言)。您只需确保返回一个对象[].
在我的情况下,我从我的@dataprovider中的.properties文件中获取凭据。
我是这样做的。您可以轻松地将其转换为从任何内容读取:
@DataProvider(name="creds")
protected Object[][] returnCreds() {
Properties cred = new Properties();
try {
FileInputStream input = new FileInputStream(System.getProperty("java.io.tmpdir") + "cred.properties");
cred.load(input);
} catch (IOException e) {
ApiHelper.doLog(e.getMessage(),false,ApiHelper.logVerbosity.ERROR);
}
Object[][] creds = new Object[1][2];
creds[0][0] = cred.getProperty("user");
creds[0][1] = cred.getProperty("pass");
return creds;
}
@Test(dataProvider="creds")
protected void testCreds(String username, String password) throws Exception {
System.out.println(username + password);
}
编辑
以上代码假定属性文件只有一个条目:
user=xyz
pass=123
如果您有search=keyword1、keyword2、keyword3
,并且需要为每个关键字运行搜索3次,您只需执行一些附加处理:
String[] splits = cred.getProperty("search").split(",");
现在只需将每个分割关键字存储到creds[]]对象的一个元素中。作为练习留给你:)有一个活生生的例子。请核实 当然,我也有同样的感觉;到目前为止,互联网上还没有这样的内容。我会尽快想出这个任务。@PrashanthSams我编辑了我的答案,添加了一些代码。希望这有帮助。让我检查一下,然后再给你回信;感谢您的工作Hi-Vish,它对属性文件有效,但在我的情况下,[search=keyword1,keyword2,keyword3]我需要运行测试3次。在上面的脚本中,测试只运行onceResourceBundle=ResourceBundle.getBundle(“config”);字符串通道=bundle.getString(“搜索”);StringTokenizer st=新的StringTokenizer(通道“,”);while(st.hasMoreTokens(){String value=st.nextToken();driver.get(baseUrl+“/”;driver.findElement(By.id(“”))。click();driver.findElement(By.id(“”)。sendKeys(value);}嘿@Karthikeyan让我检查一下:)工作正常;我觉得需要做一些改进;我会尽快与您联系吗?@PrashanthSams,更新了代码,请检查一下谢谢@karthikeyan的出色工作;)