AxeWatcherController クラス
Selenium Java テストにおけるアクセシビリティテストのタイミングと方法を axe Watcher でコントロール
この AxeWatcherController クラスは、Selenium テスト中に axe Watcher がアクセシビリティ解析を行うタイミングと方法を詳細に制御します。テストの開始、停止、解析、結果のフラッシュを行うためのメソッドを提供しており、ニーズに合ったテストプロセスをカスタマイズできます。
自動テストを実行する際、axe Watcher は2つのモードで動作できます:
- 自動モード (デフォルト):テストスイートが訪れる各ページを自動的に解析
- 手動モード:どのページと状態を解析するかを制御します
この AxeWatcherController は、特定のページを解析から除外したり、特定のページ状態に焦点を当てたい場合に特に有用です。
コントローラへのアクセス
を直接インスタンス化しません。代わりに、ラップされた AxeWatcherController インスタンスを通じてアクセスします: WebDriver メソッド
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();ページの自動解析を axe Watcher が行わないように停止します。このメソッドを呼び出した後、他のメソッドを呼び出すまで axe Watcher はページを自動で解析しません
stop()
。 start()戻り値:
- メソッドチェーンのための現在のインスタンス
AxeWatcherController例:
停止された後、axe Watcher によるページの自動解析を再開します。これにより、テストがアプリケーションと対話するときにページの自動解析が再有効化されます。
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
((AxeWatcherDriver) driver).axeWatcher().stop();
// These pages won't be analyzed automatically
driver.get("https://example.com/login");
driver.findElement(By.id("username")).sendKeys("testuser");
driver.findElement(By.id("password")).sendKeys("password");
driver.findElement(By.id("submit")).click();start()
戻り値:
- メソッドチェーンのための現在のインスタンス
AxeWatcherController例:
現在のページの手動アクセシビリティ解析をトリガーします。このメソッドは、ページの状態に関わらず、現在のページ状態でのアクセシビリティスキャンを強制的に発生させるために明示的に呼び出されます。
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
// Disable automatic analysis for login process
((AxeWatcherDriver) driver).axeWatcher().stop();
driver.get("https://example.com/login");
driver.findElement(By.id("login-button")).click();
// Re-enable automatic analysis for the main application
((AxeWatcherDriver) driver).axeWatcher().start();
// These pages will be automatically analyzed
driver.findElement(By.id("dashboard-link")).click();
driver.findElement(By.id("settings-button")).click();analyze()
戻り値:
- メソッドチェーンのための現在のインスタンス
AxeWatcherController例:
アクセシビリティ解析の結果を axe Developer Hub にフラッシュします。このメソッドは各テストの終了時に(通常、
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
// Navigate to a page
driver.get("https://example.com");
// Open a modal dialog
driver.findElement(By.id("open-modal-button")).click();
// Explicitly analyze the page with the modal open
((AxeWatcherDriver) driver).axeWatcher().analyze();flush()
または同等のメソッドにおいて)呼び出すことで、すべての結果が axe Developer Hub に送信されることを確実にします。 @AfterEach 戻り値:
- メソッドチェーンのための現在のインスタンス
AxeWatcherController例:
メソッドチェーン
@AfterEach
public void tearDown() {
if (driver instanceof AxeWatcherDriver) {
((AxeWatcherDriver) driver).axeWatcher().flush();
}
driver.quit();
}のすべてのメソッドはメソッドチェーンをサポートしており、複数の操作を組み合わせることができます:
重要な注意事項 AxeWatcherController iFrames
((AxeWatcherDriver) driver).axeWatcher()
.stop() // Stop automatic analysis
.analyze() // Perform a manual analysis
.start() // Resume automatic analysis
.flush(); // Flush results to axe Developer Hub:コントローラーのメソッドは、
-
、、および
analyze()のように、iframe 内から呼び出された場合は機能しません。これらのメソッドを使用するときは常にトップレベルのフレームにいることを確認してください。start()ページプロトコルstop():コントローラメソッドは、 -
、、または
http:以外のプロトコルを持つページでは機能しません。https:結果のフラッシュfile:: 常に -
Flush Results: Always call
flush()テストの最後に、すべてのアクセシビリティ結果をaxe Developer Hubに送信するようにします。 -
状態認識:コントローラーはその状態を追跡しているため、
stop()既に停止した状態で、またはstart()既に開始された状態で呼び出しても効果はありません。
