Java Playwrightトラブルシューティング

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Axe DevTools for Web Java Playwright統合の一般的なエラーのトラブルシューティング

Not for use with personal data

このドキュメントでは、Java Playwright統合を使用する際に出会う可能性のある問題について説明します。他のJava統合のトラブルシューティングのヒントについてはJavaトラブルシューティングを参照してください

バージョン4.3.0以降のaxe-core統合は、AxePlaywrightBuilder.analyze()を呼び出す際に新しい手法を使用しており、実行の終わりに新しいウィンドウを開きます。このドキュメントに記載されている問題の多くは、この手法によって生じる一般的な問題とその解決策に対処しています。

ポップアップブロッカーが有効化されている

ポップアップブロッカーは、AxePlaywrightBuilder.analyze()を呼び出す際に新しいウィンドウを開くのを妨げます。ほとんどの自動化テストライブラリのデフォルト設定ではポップアップが許可されるべきです。テストの実行中に問題を引き起こす可能性があるポップアップブロッカーを明示的に有効化しないようにしてください。

AxePlaywrightBuilder.setLegacyMode(boolean legacyMode)

何らかの理由で新しいAxePlaywrightBuilder.analyze手法をエラーなしで実行できない場合、axeはAxePlaywrightBuilder.analyzeの従来バージョンを実行できる新しいチェーン可能なメソッドを提供します。このメソッドを使用すると、クロスドメインのフレームおよびiframeで発生する可能性のあるアクセシビリティの問題が除外されます。

note

AxePlaywrightBuilder.setLegacyModeは非推奨であり、バージョン5.0で削除される予定です。AxePlaywrightBuilder.analyzeの実行中に発生する可能性のあるエラーを報告してください。従来バージョンが削除される前に修正されるようにします。

以下の例は、Java Playwright統合の完全な例を示しています。

import com.deque.axecore.playwright.AxePlaywrightBuilder;
import com.deque.axecore.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)
        // Set legacyMode
            .setLegacyMode(true);

        try {
            AxeResults axeResults = axePlaywrightBuilder.analyze();
            System.out.println(axeResults.getViolations());
        } catch (RuntimeException e) {
            // Do something with the error
        }
    }
}