从文本文件中读取用户名和密码

时间:2013-02-15 22:21:37

标签: java testing qa

我有一个文本文件,格式如下: UserName Password 在两个单独的行。 我试图将用户名输入用户名字段(显然),并将密码输入密码字段。 我的测试过去常常为每个元素定义一个String元素,并且所有元素都很好,因为我只是调用String元素。问题是我无法检入我的代码,因为它有我的个人活动目录登录信息。所以我试图从文本文件中读取它。我有以下代码来执行此操作:

        try
    {
        FileInputStream fstream = new FileInputStream(".../Documents/userInfo.txt");
        // Use DataInputStream to read binary NOT text.
        BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
        String strLine;
        int count = 0;
        strLine = br.readLine();
        count++;

        while(strLine!= null)
        {
            //Enter userName
            WebElement userName = driver.findElement(By.id("username"));
            userName.clear();
            userName.sendKeys(strLine);
            System.out.println(strLine);

            strLine = br.readLine();
            count++;
            //Enter Password
            WebElement password = driver.findElement(By.id("pword"));
            password.clear();
            password.sendKeys(strLine);
            System.out.println(strLine);
        }
        in.close();
        br.close();
    }
    catch (Exception e)
    {
        System.err.println("Error: " + e.getMessage());
    }

我遇到的问题是它输入了用户名和密码,然后再次运行它,只将密码输入用户名字段。我知道这可能是我看起来很简单的事情。请帮忙。

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用java.util.Properties类从文本文件中读取密钥?它专为这些目的而设计,可用于读/写属性

示例代码

        Properties prop = new Properties();
        prop.load(new FileInputStream(".../Documents/userInfo.txt"));
        String userName = prop.getProperty("username");
        // Password should always be stored in the char array.
        char[] password = null;
        if (prop.getProperty("pword") != null) {
            password = prop.getProperty("pword").toCharArray();
        }

答案 1 :(得分:1)

替换为以下代码:

         try
            {
                FileInputStream fstream = new FileInputStream("c:/Test/userInfo.txt");
                // Use DataInputStream to read binary NOT text.
                BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
                String strLine;
                int count = 0;

                count++;

                while((strLine = br.readLine())!= null)
                {
                    //Enter userName
                    WebElement userName = driver.findElement(By.id("username"));
                    userName.clear();
                    userName.sendKeys(strLine);
                    System.out.println(strLine);

                    strLine = br.readLine();
                    count++;
                    //Enter Password
                    WebElement password = driver.findElement(By.id("pword"));
                    password.clear();
                    password.sendKeys(strLine);
                    System.out.println(strLine);
                }
                in.close();
                br.close();
            }
            catch (Exception e)
            {
                System.err.println("Error: " + e.getMessage());
            }

    }

但是我不明白你为什么要循环。你在文件中只有一个用户名/密码......还是有很多用户名/密码?