Я хочу, чтобы для каждого теста создавался новый драйвер и по его окончанию он закрывался.
Удалось сделать для Selenium, но не получается для Selenide - использую его из-за удобства и простоты
Код для Selenium
Driver.java
package com.driver;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Driver {
public static final ThreadLocal<WebDriver> DRIVERS = new ThreadLocal<>();
private static WebDriver webDriver;
public static void downloadWebDriver(){
WebDriverManager.chromedriver().setup();
}
public static void instanceWebBrowser(){
webDriver = new ChromeDriver();
DRIVERS.set(webDriver);
}
public static void closeBrowser(){
webDriver.close();
}
}
Navigation.java - для открытия ссылки и задания различных конфигураций
package com.navigation;
import org.openqa.selenium.WebDriver;
import com.opencart.driver.Driver;
public class Navigation {
private WebDriver driver;
public Navigation(){
driver = Driver.DRIVERS.get();
}
public void navigateToUrl(String url){
driver.get(url);
driver.manage().window().maximize();
}
}
BaseTest.java - использую его как parent для других тестов
import com.driver.Driver;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeSuite;
public class BaseTest {
@BeforeSuite
public void setup(){
Driver.downloadWebDriver();
}
@BeforeClass
public void createDriver(){
Driver.instanceWebBrowser();
}
@AfterSuite
public void closeBrowser(){
Driver.closeBrowser();
}
}