Javaトラブルシューティング
Java用Axe DevTools for Webを使用している際に遭遇する一般的なエラーのトラブルシューティング
Axe DevTools Java 4.3以降によって引き起こされるエラーを回避する方法。Java Playwright統合のトラブルシューティングについては、Java Playwrightトラブルシューティング を参照してください。
Axe DevTools統合のバージョン4.3.0およびそれ以降では、AxeSelenium.run の呼び出し時に新しい手法を使用し、実行の最後に新しいウィンドウを開きます。このドキュメントに示された多くの問題は、この手法に関する共通の問題とその解決策を取り上げています。
古いドライバーを使用している
一般的な問題として、古いドライバーを使用していることがあります。この問題を修正するために、geckodriver またはchromedriver のローカルインストールが最新であることを確認してください。
この問題の例示的なエラーメッセージには、switchToWindow に関するメッセージが含まれます。
例として、以下をご覧ください。
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedポップアップブロッカーが有効になっている
ポップアップブロッカーによって、AxeSelenium::run の呼び出し時に新しいウィンドウを開くことが妨げられます。ほとんどの自動化テストライブラリのデフォルト設定ではポップアップが許可されているはずです。テスト実行中に問題が発生する可能性があるため、ポップアップブロッカーを明示的に有効にしないようにしてください。
AxeBuilder::setLegacyMode(boolean legacy)
何らかの理由で、新しいAxeSelenium::run 手法をエラーなしで実行できない場合、axeはAxeSelenium::run の従来バージョンを実行できる新しいチェーン可能なメソッドを提供しています。このメソッドを使用すると、axeはクロスドメインフレームやiframeで発生する可能性のあるアクセシビリティ問題を除外します。
AxeBuilder::setLegacyMode は非推奨であり、v5.0で削除される予定です。AxeSelenium::run 実行中に発生したエラーを報告してください。従来バージョンが削除される前に修正できるようにします。
例
import com.deque.html.axedevtools.selenium.AxeSelenium;
import com.deque.html.axedevtools.selenium.AxeDriver;
import com.deque.html.axecore.selenium.AxeBuilder;
public class Main {
public static void main(String[] args) {
var webDriver = ...; // open wbdriver and go to your test page
var axeDriver = new AxeDriver(webDriver);
var results = new AxeSelenium(new AxeBuilder().setLegacyMode())
.run(axeDriver);
}
}