diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/junit/BrowserContextExtension.java b/playwright/src/main/java/com/microsoft/playwright/impl/junit/BrowserContextExtension.java index 4a58f3649..e27b1c448 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/junit/BrowserContextExtension.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/junit/BrowserContextExtension.java @@ -61,6 +61,9 @@ public static BrowserContext getOrCreateBrowserContext(ExtensionContext extensio Browser browser = BrowserExtension.getOrCreateBrowser(extensionContext); Browser.NewContextOptions contextOptions = getContextOptions(playwright, options); browserContext = browser.newContext(contextOptions); + if (options.defaultTimeout != null) { + browserContext.setDefaultTimeout(options.defaultTimeout); + } if (shouldRecordTrace(options)) { Tracing.StartOptions startOptions = new Tracing.StartOptions().setSnapshots(true).setScreenshots(true).setTitle(extensionContext.getDisplayName()); if (System.getenv("PLAYWRIGHT_JAVA_SRC") != null) { diff --git a/playwright/src/main/java/com/microsoft/playwright/junit/Options.java b/playwright/src/main/java/com/microsoft/playwright/junit/Options.java index 7d4a38f45..0a9e8b8f9 100644 --- a/playwright/src/main/java/com/microsoft/playwright/junit/Options.java +++ b/playwright/src/main/java/com/microsoft/playwright/junit/Options.java @@ -38,6 +38,8 @@ public class Options { // Custom attribute to be used in page.getByTestId(). data-testid is used by default. public String testIdAttribute; public Boolean ignoreHTTPSErrors; + // Default timeout applied to each injected BrowserContext. + public Double defaultTimeout; public BrowserType.LaunchOptions launchOptions; public Browser.NewContextOptions contextOptions; public APIRequest.NewContextOptions apiRequestOptions; @@ -131,4 +133,15 @@ public Options setIgnoreHTTPSErrors(Boolean ignoreHTTPSErrors) { this.ignoreHTTPSErrors = ignoreHTTPSErrors; return this; } + + /** + * Sets the default timeout for each BrowserContext created by the JUnit extension. + * + * @param defaultTimeout timeout in milliseconds + * @return this options instance + */ + public Options setDefaultTimeout(Double defaultTimeout) { + this.defaultTimeout = defaultTimeout; + return this; + } } diff --git a/playwright/src/test/java/com/microsoft/playwright/junit/TestFixtureOptions.java b/playwright/src/test/java/com/microsoft/playwright/junit/TestFixtureOptions.java index e0246a315..675494e52 100644 --- a/playwright/src/test/java/com/microsoft/playwright/junit/TestFixtureOptions.java +++ b/playwright/src/test/java/com/microsoft/playwright/junit/TestFixtureOptions.java @@ -36,6 +36,7 @@ public Options getOptions() { return new Options() .setBaseUrl(serverMap.get(TestFixtureOptions.class).EMPTY_PAGE) .setBrowserName("webkit") + .setDefaultTimeout(10_000.0) .setTestIdAttribute("data-my-custom-testid"); } }