WebDriverJSとTypeScriptのための手順

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

WebDriverJSとTypeScriptでテストを設定する

Not for use with personal data
important

Axe Watcherを使用するには、システムにサポートされているブラウザがすでにインストールされている必要があります。それは、Chrome for Testing(Google Chromeとは異なる別のブラウザインストール)、Chromium、またはMicrosoft Edgeです。Google Chrome、バージョン139以上はサポートされていません。インストールと設定の手順については、Axe Watcherで使用するためのブラウザのセットアップと設定をご覧ください。

  1. テストフォルダのルートレベルで、@axe-core/watcherパッケージとそのすべての依存関係をnpmまたはお好みのパッケージマネージャー(例えば、yarnやpnpm)を使用してインストールします。

    npm install --save-dev @axe-core/watcher
  2. テストファイルで、webdriverConfig()関数、wrapWebdriver()関数、およびWebdriverControllerクラスを@axe-core/watcher/webdriverからインポートします:

    import {
      webdriverConfig,
      wrapWebdriver,
      WebdriverController
    } from '@axe-core/watcher/webdriver'
  3. Chromeのオプションを指定してbrowserインスタンスをインスタンス化するときに、テストセットアップコードを更新します(通常はbeforeまたはbeforeAllブロック内)、その際にAPIキーを提供します:

    // Original code:
    let browser = await new Builder()
      .forBrowser('chrome')
      .build()
    
    // Becomes:
    const ACCESSIBILITY_API_KEY = process.env.ACCESSIBILITY_API_KEY
    const PROJECT_ID = process.env.PROJECT_ID
    const SERVER_URL = process.env.SERVER_URL
    
    let browser = await new Builder()
      .forBrowser('chrome')
      .setChromeOptions(
        webdriverConfig({
          axe: {
            apiKey: ACCESSIBILITY_API_KEY,
            projectId: PROJECT_ID,
            serverURL: SERVER_URL
          }
        })
      )
      .build()

    ACCESSIBILITY_API_KEY と PROJECT_ID を環境に設定し、個人用 API キー(Axe アカウントの**API KEYS**タブで見つかります)とプロジェクト ID(プロジェクトを作成した際にこれらの指示の上部に表示されるか、プロジェクトページで**プロジェクトを設定**を選択して**設定**から入手できます)を使用してください。組織が地域のプライベートクラウドやオンプレミスの Axe Developer Hub インスタンスを使用している場合は、そのインスタンスのベース URL をSERVER_URLに設定してください(例: https://axe-eu.deque.com)。それ以外の場合、SERVER_URLを省略し、デフォルトのhttps://axe.deque.comが使用されます。

  4. WebdriverControllerのインスタンスを作成します:

    const controller = new WebdriverController(browser)
    note

    スクリーンショットのキャプチャ(takeScreenshots: true)を有効にすると、WebdriverControllerが@axe-core/watcher 4.6.0でスクリーンショットキャプチャを実装していないことに注意してください。スクリーンショットをキャプチャするには、WebdriverControllerをサブクラス化し、SeleniumのWebDriverインスタンスへの独自の参照を保持し、captureScreenshot()をオーバーライドしてそのドライバーのtakeScreenshot()の結果を返し、サブクラスをインスタンス化してください。

    import type { WebDriver } from 'selenium-webdriver'
    
    class ScreenshotWebdriverController extends WebdriverController {
      #screenshotDriver: WebDriver
    
      constructor(driver: WebDriver) {
        super(driver)
        this.#screenshotDriver = driver
      }
    
      async captureScreenshot(): Promise<string> {
        return await this.#screenshotDriver.takeScreenshot()
      }
    }
    
    const controller = new ScreenshotWebdriverController(browser)
  5. browserインスタンスをwrapWebdriver()関数でラップします:

    browser = wrapWebdriver(browser, controller)
  6. 最後に、Axe Watcherからのすべてのテスト結果がきちんと処理されたことを確認してください。これを行うには、次のコードブロックをテストのティアダウンコード(通常はafterEachブロック内)に追加してください。

    afterEach(async () => {
      await controller.flush()
    })