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.testcontainers.containers.BrowserWebDriverContainer;
14 * An Extension for JUnit Jupiter, that starts a {@link WebDriver} with the
16 * {@link https://www.testcontainers.org/modules/webdriver_containers/ Testcontainers}.
19 public class WebDriverExtension implements BeforeEachCallback, ParameterResolver
21 BrowserWebDriverContainer chrome;
25 public void beforeEach(ExtensionContext context) throws Exception
27 chrome = new BrowserWebDriverContainer().withCapabilities(DesiredCapabilities.chrome());
31 public boolean supportsParameter(
32 ParameterContext parameterContext,
33 ExtensionContext extensionContext)
35 return parameterContext.getParameter().getType() == BrowserWebDriverContainer.class;
39 public Object resolveParameter(
40 ParameterContext parameterContext,
41 ExtensionContext extensionContext)