C#Selenium从数据库(SQL Server)读取完整数据?

时间:2016-10-18 13:50:21

标签: c# sql-server selenium

我在C#中使用Selenium从包含2行数据的数据库中检索数据; UserID,UserName和Password。我只是从行中获取用户名和密码以进入网页。我能够返回我的数据库的第一行,但我试图让我的代码运行多次,因为我的数据库中有数据行。到目前为止,这是我的代码。

public class DBConnection
    {
    static SqlConnection con;
    static SqlDataReader dr;
    static SqlCommand cmd;

      public static void DBConnect()
    {
        ConnectionStringSettings connection = ConfigurationManager.ConnectionStrings["DB_Table"];
        String connectionString = connection.ConnectionString;
        try
        {
            con = new SqlConnection(connectionString);
            con.Open();
            cmd = new SqlCommand("SELECT UserName, Password FROM dbo.Users", con);

            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                string username = dr["UserName"].ToString();
                Console.WriteLine(username);
                string password = dr["Password"].ToString();
                Console.WriteLine(password);

                Thread.Sleep(5000);
                AUT.Browser.FindElement(By.Name("username")).Click();
                AUT.Browser.FindElement(By.Name("username")).Click();
                AUT.Browser.FindElement(By.Name("username")).Clear();
                Thread.Sleep(1000);
                AUT.Browser.FindElement(By.Name("username")).SendKeys(username);
                AUT.Browser.FindElement(By.Name("password")).Clear();
                AUT.Browser.FindElement(By.Name("password")).SendKeys(password);
                AUT.Browser.FindElement(By.Name("password")).SendKeys(Keys.Enter);
            }

        }
        catch (Exception e)
        {
            Console.WriteLine("Error" + e.Message);
        }
        finally
        {
            con.Close();
        }
    }
}

此代码从数据库中检索正确的数据,但它不会获取多行数据。它只抓取第一行,然后在网页到达下一页导致我的测试失败后,尝试使用第一行中的第二行数据覆盖数据。我正在尝试重新打开网页,并在打开后从我的数据库中的2行或更多行重新输入另一个userName和Password,并读取第一行数据。我的猜测是我必须在我的while循环中关闭并重新打开连接,但我已经尝试过了,但我没有运气。任何帮助将不胜感激。非常感谢你。

1 个答案:

答案 0 :(得分:2)

Heres是您想要做的伪代码:

  1. 加载数据
  2. 循环数据:

    一个。输入用户名

    湾输入密码

    ℃。按enter键

    d。等待页面加载

    即确认登录工作

    F。再次加载登录页面。

  3. 添加缺少的步骤,你应该很高兴。