public class TestBase {
public static WebDriver driver;
public static Properties property;
public TestBase()
{
try
{
property=new Properties();
FileInputStream file=new FileInputStream(System.getProperty("user.dir")+ "/src/main/java/com/qa/VitalTracks/Config/Config.properties");
property.load(file);
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
public static void InitializationAndLaunch()
{
String browsername=property.getProperty("Browser");
try
{
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-notifications");
if(browsername.equalsIgnoreCase("chrome"))
{
String chromepath=property.getProperty("ChromeDriverPath");
System.setProperty("webdriver.chrome.driver",chromepath);
driver=new ChromeDriver(options);
}
else if(browsername.equalsIgnoreCase("firefox"))
{
String firefox=property.getProperty("FirefoxDriver");
System.setProperty("webdriver.gecko.driver",firefox);
driver=new FirefoxDriver();
}
else if(browsername.equalsIgnoreCase("internetexplorer"))
{
String internetexplorer=property.getProperty("InternetExplorerPath");
System.setProperty("webdriver.ie.driver",internetexplorer);
driver=new InternetExplorerDriver();
}
}
catch(IllegalStateException e)
{
e.printStackTrace();
}
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
long PageLoadTimeOut=Long.parseLong(property.getProperty("PageLoadTimeOut"));
driver.manage().timeouts().pageLoadTimeout(PageLoadTimeOut, TimeUnit.SECONDS);
long Implicitwait=Long.parseLong(property.getProperty("Implicitwait"));
driver.manage().timeouts().implicitlyWait(Implicitwait, TimeUnit.SECONDS);
driver.get(property.getProperty("Url"));
}
}
/*Step Definition File:*/
public class Login_StepDefinition extends TestBase
{
VTLoginPage loginTC=new VTLoginPage();
VTDashboardPage dashboardTC=new VTDashboardPage();
VTLoginPageObjects loginvt=new VTLoginPageObjects();
@Before
public static void launchbrowser()
{
InitializationAndLaunch();
}
@Given("^Verify the Login page title is \"([^\"]*)\" or not$")
public void verify_the_Login_page_title(String pagetile)
{
//Initialization();
String title=loginTC.ValidateTitle();
Assert.assertEquals(pagetile, title);
// driver.quit();
}
@Given("^Logo on Login page$")
public void logo_on_Login_page() throws InterruptedException
{
//Initialization();
boolean logo=loginTC.ValidateLogo();
Thread.sleep(3000);
Assert.assertTrue(logo);
//driver.quit();
}
@Given("^Select the Check box$")
public void select_the_Check_box() throws InterruptedException
{
//Initialization();
loginTC.PerformclickOnCheckBox();
Thread.sleep(3000);
boolean checkvalue=loginTC.ValidateLoginPageCheckBox();
Thread.sleep(3000);
Assert.assertTrue(checkvalue);
//driver.quit();
}
@Given("^Enter the invalid username and password$")
public void enter_the_invalid_username_and_password(DataTable data) throws InterruptedException
{
//Initialization();
java.util.List<java.util.List<String>> alldata;
alldata=data.raw();
loginvt.usernames.sendKeys(alldata.get(1).get(0));
loginvt.passwords.sendKeys(alldata.get(1).get(1));
loginvt.submitbutton.click();
Thread.sleep(3000);
String invalidtitle=loginvt.invalidcredentilas.getText();
Assert.assertEquals(alldata.get(1).get(2),invalidtitle);
//driver.quit();
}
@Given("^Enter the valid credentials$")
public void enter_the_valid_credentials() throws InterruptedException
{
dashboardTC=loginTC.Login(property.getProperty("username"), property.getProperty("password"));
//driver.quit();
}
@After
public static void closeBrowser()
{
driver.quit();
}
}
Я запускаю браузер с перехватом @Before и закрываю браузер в @After как driver.quit, но он работает только для первого сценария, но позже для всего сценария ios он показывает исключение для всех сценарий, кроме первого сценария.
Исключением является org.openqa.selenium.NoSuchSessionException: идентификатор сеанса является нулевым. Использование веб-драйвера после вызова quit ()? Пожалуйста, помогите мне решить эту проблему.