Selenide: открытие и закрытие браузера для каждого теста

Я хочу, чтобы для каждого теста создавался новый драйвер и по его окончанию он закрывался.
Удалось сделать для 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();
    }
}

А что именно не получается?
В целом в селениде всё намного проще.

  • Выкиньте весь класс Driver
  • Выкиньте поле Navigation.driver
  • Вместо navigateToUrl() вызывайте Selenide.open()
  • Вместо Driver.closeBrowser() вызывайте Selenide.closeWebDriver()
1 симпатия