Rubyエラーハンドリング
Ruby用Axe DevTools for Webを使用する際に遭遇する一般的なエラーのトラブルシューティング
Not for use with personal data
Axe DevTools Ruby 4.3によって引き起こされるエラーの回避方法
Axe DevToolsのバージョン4.3.0以降の統合は、ページを分析する際に新しい手法を使用しており、実行の最後に新しいウィンドウを開きます。この文書で説明されている多くの問題は、この手法に関連する一般的な問題とその潜在的な解決策に対処しています。
ドライバーのバージョンが古い
一般的な問題は、ドライバーのバージョンが古いことです。この問題を解決するには、geckodriverまたはchromedriverのローカルインストールが最新であることを確認してください。
この問題の例として、switchToWindowに関するメッセージを含むエラーメッセージが表示されます。例えば:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedポップアップブロッカーが有効になっている
ポップアップブロッカーは、ページを分析する際に新しいウィンドウを開くのを妨げます。ほとんどの自動化テストライブラリのデフォルトの設定ではポップアップを許可するべきです。テストの実行中に問題が発生しないよう、ポップアップブロッカーを明示的に有効にしないでください。
Axe::Configuration.legacy_mode
何らかの理由でエラーなしにページを分析できない場合、axeはレガシープロシージャを実行するための新しいチェイン可能なメソッドを提供しています。この方法を使用すると、axeはクロスドメインフレームやiframeで発生する可能性のあるアクセシビリティの問題を除外します。
note
Axe::Configuration.legacy_modeは非推奨であり、バージョン5.0で削除されます。レガシーバージョンが削除される前に修正されるよう、ページ分析中に発生する可能性のあるすべてのエラーを報告してください。
例
require "axe/core"
def analyze_page
...
end
def open_page
...
end
webdriver = open_page
Axe::Configuration.instance.legacy_mode = true
results = analyze_page