ДЗ #1
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user