
com.github.qacore.seleniumtestingtoolbox.WebDriverContext Maven / Gradle / Ivy
package com.github.qacore.seleniumtestingtoolbox;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.internal.WrapsDriver;
import com.github.qacore.seleniumtestingtoolbox.webdriver.AugmentedWebDriver;
import com.github.qacore.seleniumtestingtoolbox.webdriver.DefaultAugmentedWebDriver;
import com.github.qacore.seleniumtestingtoolbox.webdriver.internal.AugmentedWrapsDriver;
import lombok.ToString;
/**
* Managed {@link WebDriver} parallel context.
*
* The default context is {@link WebDriverManager#getDriverContext()}.
*
*
* @author Leonardo Carmona da Silva
*
*
* @see WebDriverManager
*
* @since 1.0.0
*
*/
@ToString
public class WebDriverContext implements AugmentedWrapsDriver {
private AugmentedWrapsDriver driverContext;
public WebDriverContext(WrapsDriver driverContext) {
if (driverContext == null) {
this.driverContext = WebDriverManager.getDriverContext();
} else {
if (driverContext instanceof AugmentedWrapsDriver) {
this.driverContext = (AugmentedWrapsDriver) driverContext;
} else {
this.driverContext = new AugmentedWrapsDriver() {
@Override
public AugmentedWebDriver getWrappedDriver() {
return new DefaultAugmentedWebDriver(driverContext.getWrappedDriver());
}
@Override
public String toString() {
return this.getWrappedDriver().toString();
}
};
}
}
}
public WebDriverContext(WebDriver webDriver) {
if (webDriver == null) {
this.driverContext = WebDriverManager.getDriverContext();
} else {
AugmentedWebDriver augmentedWebDriver;
if (webDriver instanceof AugmentedWebDriver) {
augmentedWebDriver = (AugmentedWebDriver) webDriver;
} else {
augmentedWebDriver = new DefaultAugmentedWebDriver(webDriver);
}
this.driverContext = new AugmentedWrapsDriver() {
@Override
public AugmentedWebDriver getWrappedDriver() {
return augmentedWebDriver;
}
@Override
public String toString() {
return webDriver.toString();
}
};
}
}
public WebDriverContext() {
this.driverContext = WebDriverManager.getDriverContext();
}
@Override
public AugmentedWebDriver getWrappedDriver() {
return driverContext.getWrappedDriver();
}
public boolean isManaged() {
return WebDriverManager.getDriverContext().equals(this.getDriverContext());
}
protected WrapsDriver getDriverContext() {
return driverContext;
}
protected void setDriverContext(AugmentedWrapsDriver driverContext) {
this.driverContext = driverContext;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy