我在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循环中关闭并重新打开连接,但我已经尝试过了,但我没有运气。任何帮助将不胜感激。非常感谢你。
答案 0 :(得分:2)
Heres是您想要做的伪代码:
循环数据:
一个。输入用户名
湾输入密码
℃。按enter键
d。等待页面加载
即确认登录工作
F。再次加载登录页面。
添加缺少的步骤,你应该很高兴。