如何在C#中使用selenium自动化测试验证登录

时间:2017-02-22 13:01:05

标签: c# selenium selenium-webdriver automated-tests

我必须在C#中使用selenium进行前端自动化测试。我已经开始学习并开始在文本框中填充参数并单击登录按钮。

但要求是,点击登录按钮后,我需要等待检查登录是否成功,只有成功,才需要进行下一次测试。 我正在使用VisualStudio.TestTools.UnitTesting参考。这是启动方法,只有在成功登录后,我才需要进一步的测试方法。

我被困在这里如何等待验证并继续下一个方法,以下是我的代码

    [TestMethod]
    public void LoginWithParameters()
    {
        IWebDriver driver = new ChromeDriver();
        driver.Navigate().GoToUrl(ConfigurationManager.AppSettings["TestURL"]);
        var userName = driver.FindElement(By.Id("UserName"));
        var passWord = driver.FindElement(By.Id("Password"));
        var logOn = driver.FindElement(By.XPath("//input[@value='Log On']"));
        userName.SendKeys(ConfigurationManager.AppSettings["UserName"]);
        passWord.SendKeys(ConfigurationManager.AppSettings["Password"]);
        logOn.Click();


        var str = driver.PageSource;

        Assert.IsTrue(str.Contains("Login was unsuccessful"));


    } 

请帮助解决此问题或任何适当的教程。 感谢。

1 个答案:

答案 0 :(得分:2)

很可能成功消息显示在DIV或类似的东西中。所以你可以使用WebDriverWait。

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(
By.Id("successDivId")));
// code after successful login...

您还可以在此处查看摘要表 - https://automatetheplanet.com/selenium-webdriver-csharp-cheat-sheet/

您的测试中不需要条件代码,只需为成功登录和不成功创建两个不同的测试。