This commit is contained in:
2026-02-14 01:35:11 +03:00
commit 895bea43d2
27 changed files with 1210 additions and 0 deletions
@@ -0,0 +1,43 @@
package ru.kovbasa.driver;
import com.google.inject.Inject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.events.EventFiringDecorator;
import io.github.bonigarcia.wdm.WebDriverManager;
import ru.kovbasa.listeners.HighlightElementListener;
public final class WebDriverProvider {
private WebDriver driver;
private final DriverFactory driverFactory;
static {
WebDriverManager.chromedriver().setup();
}
@Inject
public WebDriverProvider(DriverFactory driverFactory) {
this.driverFactory = driverFactory;
}
public WebDriver getDriver() {
if (driver == null) {
driver = createDecoratedDriver();
}
return driver;
}
private WebDriver createDecoratedDriver() {
final WebDriver raw = driverFactory.createDriver();
return new EventFiringDecorator(new HighlightElementListener())
.decorate(raw);
}
public void quit() {
if (driver != null) {
driver.quit();
driver = null;
}
}
}