C# エラーハンドリング
C# 用の Axe DevTools for Web を使用する際によく発生するエラーのトラブルシューティング
バージョン 4.3.0 以降の axe-core 統合は、新しいウィンドウを実行の最後に開く新しい手法をAxeSelenium.run()呼び出し時に使用します。このドキュメントで取り上げられている多くの問題は、この手法に関連する一般的な問題とその潜在的な解決策を扱っています。
古いドライバーの使用
一般的な問題は、古いドライバーを使用していることです。この問題を解決するには、ローカルにインストールされているgeckodriverまたはchromedriverが最新であることを確認してください。
この問題のエラーメッセージの例には、switchToWindowに関するメッセージが含まれます。
例:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedポップアップブロッカーが有効になっている
ポップアップブロッカーはAxeSelenium::run呼び出し時に新しいウィンドウを開くのを妨げます。ほとんどの自動化テストライブラリのデフォルト設定では、ポップアップを許可する必要があります。テストを実行中に問題を引き起こす可能性のあるポップアップブロッカーを明示的に有効にしていないことを確認してください。
AxeSelenium::useLegacyMode(boolean legacy)
何らかの理由で新しいAxeSelenium::run手法をエラーなしで実行できない場合、axe は従来のバージョンのAxeSelenium::runを実行できる新しいチェーン可能なメソッドを提供します。このメソッドを使用すると、axe はクロスドメインフレームや iframes で発生する可能性のあるアクセシビリティ問題を除外します。
AxeSelenium::useLegacyModeは廃止され、v5.0 で削除されます。従来バージョンが削除される前にAxeSelenium::runを実行中に発生する可能性のあるエラーを報告してください。
例
using Deque.AxeDevtools.Selenium;
using OpenQA.Selenium.Chrome;
public class Program
{
static void Main(string[] args)
{
// open webdriver and go to test page
var webDriver = new ChromeDriver();
webDriver.Navigate().GoToUrl("http://www.testurl.com/");
// enable legacy mode and analyze
var results = new AxeSelenium(webDriver)
.UseLegacyMode(true)
.Analyze();
}
}