C#Selenium - 检测成功登录

时间:2015-07-31 12:03:09

标签: c# selenium selenium-webdriver

我之前问了一个关于在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>

感谢。

1 个答案:

答案 0 :(得分:0)

我可以就如何检测成功登录向您提供建议。我所做的是寻找登录后会出现的一些元素。成功找到这些元素后,您就会知道这个登录是好的。

例如,在我的测试用例中,我将寻找&#34;标题&#34;登录后的页面元素。另外,我还要尝试找到作为图像的元素。

关于捕获该异常,您是否尝试按F12访问控制台按摩?你或许可以在那里收到一条消息。