我在C#中使用Selenium从数据库中检索数据,该数据库具有两行数据,每列数据;用户ID,用户名和密码。我只是从行中获取用户名和密码,以进入网页。我能够返回数据库的第一行,但是我试图使我的代码运行的次数与数据库中数据行的运行次数相同。到目前为止,这是我的代码。
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循环中关闭并重新打开连接,但是我已经尝试过了,但是没有运气。任何帮助将不胜感激。非常感谢你。
这是您要执行的操作的伪代码:
循环数据:
一种。输入用户名
b。输入密码
C。按回车
d。等待页面加载
e。确认登录成功
F。再次加载登录页面。
添加缺少的步骤,您应该一切顺利。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句