Fri. Dec 9th, 2022

Playwright Test has created specifically to assist the needs of end-to-end testing. Playwright supports all modern engines including Chromium, WebKit, and Firefox. Test on Windows, Linux, and macOS, locally or on CI, headless or headed with native mobile emulation of Google Chrome for Android and Mobile Safari.

Playwright is distributed as a set of Maven modules. The easiest way to use it is to add one dependency to your project’s pom.xml as described below. If you’re not familiar with Maven please refer to its documentation.

Usage

Get started by installing Playwright and running the example file to see it in action.

App.java

// src/main/java/org/example/App.java
package org.example;

import com.microsoft.playwright.*;

public class App {
    public static void main(String[] args) {
        try (Playwright playwright = Playwright.create()) {
            Browser browser = playwright.chromium().launch();
            Page page = browser.newPage();
            page.navigate("http://playwright.dev");
            System.out.println(page.title());
        }
    }
}

Pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>examples</artifactId>
  <version>0.1-SNAPSHOT</version>
  <name>Playwright Client Examples</name>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>com.microsoft.playwright</groupId>
      <artifactId>playwright</artifactId>
      <version>1.28.0</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
      </plugin>
    </plugins>
  </build>
</project>

With the Example.java and pom.xml above, compile and execute your new program as follows

mvn compile exec:java -Dexec.mainClass="org.example.App"

Running it downloads the Playwright package and installs browser binaries for Chromium, Firefox and WebKit.

First script

In our first script, we will navigate to whatsmyuseragent.org and take a screenshot in WebKit.

package org.example;

import com.microsoft.playwright.*;
import java.nio.file.Paths;

public class App {
  public static void main(String[] args) {
    try (Playwright playwright = Playwright.create()) {
      Browser browser = playwright.webkit().launch();
      Page page = browser.newPage();
      page.navigate("http://whatsmyuseragent.org/");
      page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("example.png")));
    }
  }
}

By default, Playwright runs the browsers in headless mode. To see the browser UI, pass the headless=false flag while launching the browser. You can also use slowMo to slow down execution.

playwright.firefox().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(50));

Running the Example script

mvn compile exec:java -Dexec.mainClass="org.example.App"

By default browsers launched with Playwright run headless, meaning no browser UI will open up when running the script. To change that you can pass new BrowserType.LaunchOptions().setHeadless(false) when launching the browser

By Rajashekar

I’m (Rajashekar) a core Android developer with complimenting skills as a web developer from India. I cherish taking up complex problems and turning them into beautiful interfaces. My love for decrypting the logic and structure of coding keeps me pushing towards writing elegant and proficient code, whether it is Android, PHP, Flutter or any other platforms. You would find me involved in cuisines, reading, travelling during my leisure hours.

Leave a Reply

Your email address will not be published. Required fields are marked *