我之前问了一个关于在C#中使用Selenium登录网站的问题,但现在我遇到了一个问题,即程序在未成功的登录时崩溃,给出了找不到密钥的原因。我有一个try + catch(例外),但它会跳过它。
我的问题是如何检测登录是否成功?如果不能成功退出登录表格并继续进行测试,那就不成功。
我的方法代码在这里:
private static void LogInAsUser()
{
try
{
Driver.FindElement(By.XPath("//a[contains(@href, '#login-window')]")).Click();
Thread.Sleep(500);
IWebElement username = Driver.FindElement(By.XPath("//input[contains(@id, 'UserName')]"));
IWebElement password = Driver.FindElement(By.XPath("//input[contains(@id, 'Password')]"));
username.Clear();
username.SendKeys("user@exampleemail.com");
password.Clear();
password.SendKeys("examplepass");
Driver.FindElement(By.Id("btnLogin")).Click();
}
catch (Exception)
{
}
}
我的通话方法(包括它有所不同)是:
//Log in as User
try
{
LogInAsUser();
}
catch (Exception)
{
Result.Fail(60);
}
与登录失败时的错误消息的HTML一样
<div id="msgError" class="col-md-12 text-center">Login failed: The user name or password provided is incorrect.</div>
感谢。
答案 0 :(得分:0)
我可以就如何检测成功登录向您提供建议。我所做的是寻找登录后会出现的一些元素。成功找到这些元素后,您就会知道这个登录是好的。
例如,在我的测试用例中,我将寻找&#34;标题&#34;登录后的页面元素。另外,我还要尝试找到作为图像的元素。
关于捕获该异常,您是否尝试按F12访问控制台按摩?你或许可以在那里收到一条消息。