Я написал несколько тестовых примеров с использованием веб-драйверов Selen в C #.
Я использовал атрибут ORDER для запуска тестов по порядку. Он запускается по заказу. Но тесты не ждут окончания предыдущих тестов.
Я также использовал WebDriverWait. Но это не ждет.
Ссылка: https://github.com/nunit/docs/wiki/Order-Attribute
Пожалуйста, найдите фрагмент кода ниже:
[Test, Order(1)]
public void OpenUserPage()
{
try
{
var wait = new WebDriverWait(_webDriver, new TimeSpan(2000));
wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("NavigationMenu")));
var userPageEle = _webDriver.FindElement(By.ClassName("icon-Users"));
userPageEle.Click();
}
catch (Exception e)
{
SendMail.SendErrorEmail(e.StackTrace, "OpenUserPage()");
}
}
[Test, Order(2)]
public void AddUser()
{
try
{
var waitForAddUser= new WebDriverWait(_webDriver, new TimeSpan(5000));
waitForAddUser.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("[ng-click*=AddUserBtnClick]")));
var addUser = _webDriver.FindElement(By.CssSelector("[ng-click*=AddUserBtnClick]"));
addUser.Click();
var element = _webDriver.FindElement(By.XPath("//input[@id='Role_hidden']"));
var permissionSet = _webDriver.FindElement(By.XPath("//input[@id='RolePermissionSet_hidden']"));
var FirstName = _webDriver.FindElement(By.Name("FirstName"));
FirstName.SendKeys("Sangeetha");
var LastName = _webDriver.FindElement(By.Name("Last Name"));
LastName.SendKeys("Periyaiah");
var UserName = _webDriver.FindElement(By.Name("UserName"));
UserName.SendKeys("SangeetheP");
var Password = _webDriver.FindElement(By.Name("Password"));
Password.SendKeys("Sync@123");
var Email = _webDriver.FindElement(By.Name("Email"));
Email.SendKeys("sangee900@gmail.com");
var RoleList = _webDriver.FindElement(By.Name("RoleList"));
element.SendKeys("SuperAdmin");
var RolePermissionList = _webDriver.FindElement(By.Name("RolePermissionList"));
permissionSet.SendKeys("SuperAdmin");
var MobileNumber = _webDriver.FindElement(By.Name("MobileNumber"));
MobileNumber.SendKeys("8220867882");
var AreaCode = _webDriver.FindElement(By.Name("AreaCode"));
AreaCode.SendKeys("600002");
var Address = _webDriver.FindElement(By.Name("Address"));
Address.SendKeys("3/761, Ab Block");
var submit = _webDriver.FindElement(By.CssSelector("[ng-click*=AddUpdateUser]"));
submit.Click();
}
catch (Exception e)
{
SendMail.SendErrorEmail(e.StackTrace, "AddUser()");
}
}
[Test, Order(3)]
public void ApplyFilter()
{
try
{
var waitForSearch = new WebDriverWait(_webDriver, new TimeSpan(55000));
waitForSearch.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(".form-control.ng-pristine.ng-valid")));
var searchUser = _webDriver.FindElement(By.CssSelector(".form-control.ng-pristine.ng-valid"));
searchUser.SendKeys("as");
var waitFilter = new WebDriverWait(_webDriver, new TimeSpan(55000));
waitFilter.Until(ExpectedConditions.ElementToBeClickable((By.CssSelector("[ng-click*=filterUserBtnClick]"))));
var applyUserFilter = _webDriver.FindElement(By.CssSelector("[ng-click*=filterUserBtnClick]"));
applyUserFilter.Click();
var waitResetFilter = new WebDriverWait(_webDriver, new TimeSpan(55000));
waitResetFilter.Until(ExpectedConditions.ElementToBeClickable((By.CssSelector("[ng-click*=resetFilter]"))));
var resetFilter = _webDriver.FindElement(By.CssSelector("[ng-click*=resetFilter]"));
resetFilter.Click();
}
catch (Exception e)
{
SendMail.SendErrorEmail(e.StackTrace, "ApplyFilter()");
}
}
Пожалуйста, поделитесь любым другим решением.
Заранее спасибо