4 import org.junit.jupiter.api.extension.BeforeEachCallback;
5 import org.junit.jupiter.api.extension.ExtensionContext;
6 import org.junit.jupiter.api.extension.ParameterContext;
7 import org.junit.jupiter.api.extension.ParameterResolver;
8 import org.openqa.selenium.WebDriver;
9 import org.openqa.selenium.remote.DesiredCapabilities;
10 import org.openqa.selenium.remote.RemoteWebDriver;
11 import org.testcontainers.containers.BrowserWebDriverContainer;
15 * An Extension for JUnit Jupiter, that starts a {@link WebDriver} with the
17 * {@link https://www.testcontainers.org/modules/webdriver_containers/ Testcontainers}.
20 public class WebDriverExtension implements BeforeEachCallback, ParameterResolver
22 BrowserWebDriverContainer chrome;
26 public void beforeEach(ExtensionContext context) throws Exception
28 chrome = new BrowserWebDriverContainer().withCapabilities(DesiredCapabilities.chrome());
32 public boolean supportsParameter(
33 ParameterContext parameterContext,
34 ExtensionContext extensionContext)
36 return parameterContext.getParameter().getType() == RemoteWebDriver.class;
40 public Object resolveParameter(
41 ParameterContext parameterContext,
42 ExtensionContext extensionContext)
44 return chrome.getWebDriver();