В момента помагам в доказателство за концепция, използвайки Selenium 2 / WebDriver с C# срещу ASP.NET MVC приложение, използвайки InternetExplorerDriver.
Приложението използва стандартен модел за уведомяване на потребителите, че даден запис е запазен. Това работи чрез настройките на TempData, за да включите „Записът е запазен успешно“ и ако TempData присъства в изгледа, изгледът ще предупреди съобщението.
Докато работим върху тестовете на Selenium за тази функционалност, получаваме непостоянно поведение от тестовия код на C# / Selenium по-долу:
_driver.Navigate().GoToUrl(_baseUrl + "/Amraam/List");
_driver.FindElement(By.LinkText("Create New")).Click();
_driver.FindElement(By.Id("txtAmraamSerialNumber")).SendKeys("CC12345");
var selectElement = new SelectElement(_driver.FindElement(By.Id("LocationId")));
selectElement.SelectByText("Tamworth");
_driver.FindElement(By.Id("btnSave")).Click();
var wait = new WebDriverWait(_driver, defaultTimeout);
IAlert alert = wait.Until(drv => drv.SwitchTo().Alert());
_alertText = alert.Text;
alert.Accept();
Assert.That(_alertText, Is.EqualTo("Record successfully saved"));
Приблизително 50% от времето Selinium ще се провали с a
OpenQA.Selenium.NoAlertPresentException : Няма активно предупреждение
Боря се да намеря точен начин да възпроизведа проблема и се тревожа за аспекта на несъответствието. Ако се проваляше постоянно, тогава бихме могли да отстраним грешки и да проследим проблема.