我目前正在使用C#和Selenium编写一个测试软件。我尝试输入用户名和密码并使用网站的登录功能,但每次提交表单时都会返回无效的用户名或密码,我相信它会尝试输入数据重复次数或在错误的字段中输入数据。
这是我的代码:
private static void LogInAsUser()
{
Driver.FindElement(By.XPath("//a[contains(@href, '#login-window')]")).Click();
Driver.FindElement(By.XPath("//input[contains(@id, 'UserName')]")).Click();
Driver.FindElement(By.XPath("//input[contains(@id, 'UserName')]" )).SendKeys("exampleuser@exampleemail.com");
Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]")).Click();
Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]")).SendKeys("example");
Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]")).Submit();
//Driver.FindElement(By.Id("btnLogin")).Submit(); //*[@id="btnLogin"] //*[@id="login-window"]/div/div/div[3]/div[1]/div
{
Result.Pass(60);
}
}
不是我所知道的最干净的代码,但任何帮助都会受到赞赏。
答案 0 :(得分:1)
如果您发布了HTML代码会有所帮助,但即使没有它也会尝试这样:
private static void LogInAsUser()
{
Driver.FindElement(By.XPath("//a[contains(@href, '#login-window')]")).Click();
IWebElement username = Driver.FindElement(By.XPath("//input[contains(@id, 'UserName')]" ));
IWebElement password = Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]"));
username.Clear();
username.SendKeys("exampleuser@exampleemail.com");
password.Clear();
password.SendKeys("example");
Driver.FindElement(By.Id("btnLogin")).Click();
{
Result.Pass(60);
}
}
您不需要输入元素的Click()方法,只需找到它们并发送数据即可。您只想在结尾处单击“登录”按钮。