У меня есть сценарий использования, который обозначает следующие шаги, которые я пытаюсь реализовать, используя POM в Nunit.
- Открыть форму входа
Подача данных в имени пользователяи поля пароля с использованием Excel.
3a. Если учетные данные верны
a) Записать тестовый пример как пройденный
b) Нажмите на ссылку «Выйти из системы»
4.Закройте оставшееся окно браузера
3b. Если учетные данные неверны
a) Зарегистрируйте тестовый случай как неудачный
b) Очиститетекстовые поля имени пользователя и пароля
c) Нет необходимости закрывать окно браузера.
Теперь проблема уже установлена, драйвер создан в [Setup] в Main Class.Как нам снова создать окно браузера в случае успешного входа в систему?
Я добавляю следующий код
Login Object Class
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using SeleniumExtras.PageObjects;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PracticePrograms.PageObjectsWithPageFactory
{
public class VSSLoginObjects
{
[FindsBy(How = How.Id, Using = "userNameOldLook")]
public IWebElement Userid { get; set; }
[FindsBy(How = How.XPath, Using = "//input[@type='password']")]
public IWebElement Password { get; set; }
[FindsBy(How = How.XPath, Using = "//a[contains(text(),'login')]")]
public IWebElement Btn_Login { get; set; }
[FindsBy(How = How.XPath, Using = "//li[contains(text(),'Login failed')]")]
public IWebElement Lbl_Login_Failed { get; set; }
[FindsBy(How = How.XPath, Using = "//a[contains(text(),'Logoff')]")]
public IWebElement lnk_logoff;
public VSSLoginObjects()
{
PageFactory.InitElements(DriverInstance.driver, this);
}
public void Login_QAPortal()
{
Userid.SendKeys("v0c1344");
Wait.UntilElementDisplayed(DriverInstance.driver, Password);
Password.SendKeys("welcome5");
Btn_Login.Click();
//return new QAPortal_LandingPage_Objects();
}
public void Test_Login_QA_Portal()
{
String Excel = @"C:\\Selenium Files\\TestData.xlsx";
int length = ExcelClassTemp.GetRowCount(Excel, 3);
for (int i = 2; i <= length; i++)
{
String data = ExcelClassTemp.ReadExcel(Excel, 3, i, 1);
String upper_data = data.ToUpper();
Userid.SendKeys(upper_data);
Password.SendKeys("Welcome567");
Btn_Login.Click();
if (DriverInstance.driver.PageSource.Contains("Trucks Portal"))
{
Console.WriteLine("User Credentials" + upper_data + "Passed");
lnk_logoff.Click();
DriverInstance.driver.Close();
}
else
{
Console.WriteLine("User Credentials" + upper_data + "Failed");
Userid.Clear();
Password.Clear();
}
}
}
}
}
Добавление основного класса
Main Class
using System;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NUnit.Framework;
using OpenQA.Selenium.Chrome;
namespace PracticePrograms.PageObjectsWithPageFactory
{
public class Tests
{
[SetUp]
public void setup()
{
DriverInstance.driver = new ChromeDriver();
DriverInstance.driver.Navigate().GoToUrl("Go to Url");
DriverInstance.driver.Manage().Window.Maximize();
}
[Test]
public void Perform_VSS_Login()
{
VSSLoginObjects login = new VSSLoginObjects();
login.Test_Login_QA_Portal();
}
}
}