如何在 C# 中使用 Selenium 验证是否显示警报消息?

我需要验证在网站中,当字段包含有效数据时,单击“保存”后会显示一条警报,提示“信息已成功保存”。现在我有一个代码来查找网络元素并填充有效数据,如下所示:


IWebElement carName = driver.FindElement(By.XPath("..."));

carName.Click();

carName.SendKeys("Name of the car");


IWebElement saveButton = driver.FindElement(By.XPath("..."));

saveButton.Click();

我希望当显示消息时验证它是否已显示并且测试已通过。


湖上湖
浏览 98回答 2
2回答

qq_遁去的一_1

判断是否出现弹出元素,如果不出现元素计数为0List<IWebElement> elementList = new List<IWebElement>();elementList.AddRange(driver.FindElements(By.XPath("..."));if(elementList.Count > 0){&nbsp;//If the count is greater than 0 your element exists.&nbsp; &nbsp; &nbsp;Console.Write("pop up is present");}else{&nbsp; Console.Write("pop up not present");}注意:请确保使用FindElements()而不是FindElement()

隔江千里

我建议使用 webdriverwait,因为根据表单的不同,在成功消息之前可能会有延迟。var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));var element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("your xpath here")));Assert.NotNull(element);断言格式将根据您的框架而有所不同。那是来自 xUnit 的。注意:包含 ExpectedConditions 的包没有维护,但它们非常简单,如果您担心的话,可以将其复制到您的代码或自己的包中。public static Func<IWebDriver, IWebElement> ElementIsVisible(By locator){&nbsp; &nbsp; return (driver) =>&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; try&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return ElementIfVisible(driver.FindElement(locator));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; catch (StaleElementReferenceException)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return null;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; };}private static IWebElement ElementIfVisible(IWebElement element){&nbsp; &nbsp; return element.Displayed ? element : null;}
打开App,查看更多内容
随时随地看视频慕课网APP