Selenium 使用@Dataprovider注释(TestNG)从文本(.txt)文件获取数据

Selenium 使用@Dataprovider注释(TestNG)从文本(.txt)文件获取数据,selenium,selenium-webdriver,testng,Selenium,Selenium Webdriver,Testng,通常我们对Excel文件使用@dataProvider;如果文本(.txt)文件是这样,任何示例都会很有帮助。。非常感谢您的帮助 我看不出它不起作用的原因。dataprovider函数与任何其他函数类似(就其获取数据的方式而言)。您只需确保返回一个对象[]. 在我的情况下,我从我的@dataprovider中的.properties文件中获取凭据。 我是这样做的。您可以轻松地将其转换为从任何内容读取: @DataProvider(name="creds") protected Objec

通常我们对Excel文件使用
@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的出色工作;)