diff --git a/README.md b/README.md index 01398e53..4288449d 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,7 @@ public class PageScreenshot { playwright.firefox() ); for (BrowserType browserType : browserTypes) { - Browser browser = browserType.launch( - new BrowserType.LaunchOptions().withHeadless(false)); + Browser browser = browserType.launch(); BrowserContext context = browser.newContext( new Browser.NewContextOptions().withViewport(800, 600)); Page page = context.newPage(); @@ -59,6 +58,94 @@ public class PageScreenshot { } ``` +#### Mobile and geolocation + +This snippet emulates Mobile Chromium on a device at a given geolocation, navigates to openstreetmap.org, performs action and takes a screenshot. + +```java +import com.microsoft.playwright.*; +import java.nio.file.Paths; +import static java.util.Arrays.asList; + +public class MobileAndGeolocation { + public static void main(String[] args) throws Exception { + Playwright playwright = Playwright.create(); + BrowserType browserType = playwright.chromium(); + Browser browser = browserType.launch(); + DeviceDescriptor pixel2 = playwright.devices().get("Pixel 2"); + BrowserContext context = browser.newContext(new Browser.NewContextOptions() + .withViewport(pixel2.viewport().width(), pixel2.viewport().height()) + .withUserAgent(pixel2.userAgent()) + .withDeviceScaleFactor(pixel2.deviceScaleFactor()) + .withIsMobile(pixel2.isMobile()) + .withHasTouch(pixel2.hasTouch()) + .withLocale("en-US") + .withGeolocation(new Geolocation(41.889938, 12.492507)) + .withPermissions(asList("geolocation"))); + Page page = context.newPage(); + page.navigate("https://www.openstreetmap.org/"); + page.click("a[data-original-title=\"Show My Location\"]"); + page.screenshot(new Page.ScreenshotOptions().withPath(Paths.get("colosseum-pixel2.png"))); + browser.close(); + playwright.close(); + } +} +``` + +#### Evaluate in browser context + +This code snippet navigates to example.com in Firefox, and executes a script in the page context. + +```java +import com.microsoft.playwright.*; + +public class EvaluateInBrowserContext { + public static void main(String[] args) throws Exception { + Playwright playwright = Playwright.create(); + BrowserType browserType = playwright.firefox(); + Browser browser = browserType.launch(new BrowserType.LaunchOptions().withHeadless(false)); + BrowserContext context = browser.newContext(); + Page page = context.newPage(); + page.navigate("https://www.example.com/"); + Object dimensions = page.evaluate("() => {\n" + + " return {\n" + + " width: document.documentElement.clientWidth,\n" + + " height: document.documentElement.clientHeight,\n" + + " deviceScaleFactor: window.devicePixelRatio\n" + + " }\n" + + "}"); + System.out.println(dimensions); + browser.close(); + playwright.close(); + } +} +``` + +#### Intercept network requests + +This code snippet sets up request routing for a WebKit page to log all network requests. + +```java +import com.microsoft.playwright.*; + +public class InterceptNetworkRequests { + public static void main(String[] args) throws Exception { + Playwright playwright = Playwright.create(); + BrowserType browserType = playwright.webkit(); + Browser browser = browserType.launch(); + BrowserContext context = browser.newContext(); + Page page = context.newPage(); + page.route("**", route -> { + System.out.println(route.request().url()); + route.continue_(); + }); + page.navigate("http://todomvc.com"); + browser.close(); + playwright.close(); + } +} +``` + ## Notes Follow [the instructions](https://github.com/microsoft/playwright-java/blob/master/CONTRIBUTING.md#getting-code) to build the project from source and install driver.