我必须在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"));
}
请帮助解决此问题或任何适当的教程。 感谢。
答案 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/
您的测试中不需要条件代码,只需为成功登录和不成功创建两个不同的测试。