Java and Playwright with axe DevTools
A Playwright Java chainable API integration for axe DevTools.
Prerequisites
- Playwright. For more information, see System Requirements
- Java 8 or higher.
Setup
See the installation guide for more information about obtaining the Playwright integration from Deque.
Add Playwright Java to your pom.xml
if you have not already:
<!-- Latest Version: https://mvnrepository.com/artifact/com.microsoft.playwright/playwright -->
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.17.1</version>
</dependency>
Add @axe-core-maven-playwright
dependency to your pom.xml
:
<dependency>
<groupId>com.deque.html.axe-devtools</groupId>
<artifactId>playwright</artifactId>
<version>4.4.0</version>
</dependency>
Local Development
For first time installation, use the following:
mvn clean install
To run the tests:
mvn test -q
To run individual tests:
// -Dtest=<class>#<function> example:
mvn test -Dtest=PlaywrightJavaTest#shouldReturnAxeResults
Example
The following shows a minimal example of how to set up Playwright and use it to check a page for accessibility errors:
import com.deque.html.maven.axedevtools.playwright.AxePlaywrightBuilder;
import com.deque.html.maven.axedevtools.utility.axeresults.AxeResults;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;
import org.junit.Test;
public class MyPlaywrightTestSuite {
@Test
public void testMyWebPage() {
Playwright playwright = Playwright.create();
Browser browser = playwright.chromium()
.launch(new BrowserType.LaunchOptions().setHeadless(true));
Page page = browser.newPage();
page.navigate("https://dequeuniversity.com/demo/mars/");
AxePlaywrightBuilder axePlaywrightBuilder = new AxePlaywrightBuilder(page);
try {
AxeResults axeResults = axePlaywrightBuilder.analyze();
// Do something with axeResults
} catch (RuntimeException e) {
// Do something with the error
}
}
}
Next Steps
For more information about this integration's APIs, see the Playwright API Reference.