概要

ChromeDriverを使用してChromeでNightwatch.jsテストを実行します。

このガイドでは、以下について学習します。

  • ChromeDriverのダウンロード
  • サポートされているChrome機能
  • サポートされているChrome設定
  • DockerでChromeを使用する

ダウンロード

ステップ1. ChromeDriverのダウンロード - ダウンロードページから、お使いのプラットフォーム用の最新バージョンのChromeDriverをダウンロードしてください。

ステップ2. パスの設定 - nightwatch.jsonファイルのwebdriverオブジェクトの下に、ChromeDriverバイナリの場所を次のように設定します。


"webdriver" : {
  "server_path" : "/path/to/chromedriver"
}

サポートされているChrome機能

次の表は、Chrome固有のすべての必要な機能の一覧を示しています。これらはすべてChromeOptions辞書の下にあります。

名前 説明
args 文字列の配列 Chromeの起動時に使用するコマンドライン引数のリスト。値が関連付けられている引数は、'='で区切る必要があります(例:["start-maximized", "user-data-dir=/tmp/temp_profile"])。
binary 文字列 使用するChrome実行ファイルへのパス(Mac OS Xでは、アプリではなく実際のバイナリである必要があります。例:'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome')
extensions 文字列の配列 起動時にインストールするChrome拡張機能のリスト。リスト内の各項目は、base-64でエンコードされたパックされたChrome拡張機能(.crx)である必要があります。

Nightwatchは、ChromeDriverが提供するすべての引数と機能をサポートしています。

これらの機能の詳細については、公式ChromeDriverドキュメントをご覧ください。

argsnightwatch.jsonファイルのdesiredCapabilitiesキーの下にあるchromeOptionsキーに渡すことができるコマンドラインスイッチのリストについては、こちらを参照できます。


"desiredCapabilities" : {
  "browserName" : "chrome",
  "javascriptEnabled" : true,
  "acceptSslCerts" : true,
  "chromeOptions" : {
    "args" : ["start-fullscreen"]
  }
}

サポートされているユーザー設定

argsキーを使用して設定するコマンドラインスイッチに加えて、prefsキーを使用してChromeプロファイルの設定を渡すこともできます。

次のコードスニペットは、nightwatch.jsonファイルでブラウザのパスワードマネージャー機能を無効にする場合の設定方法を示しています。


"desiredCapabilities" : {
  "browserName" : "chrome",
  "javascriptEnabled" : true,
  "acceptSslCerts" : true,
  "chromeOptions" : {
    "prefs" : {
      "credentials_enable_service" : false,
      "profile.password_manager_enabled" : false
    }
  }
}

Dockerコンテナ内で実行されているChromeの使用

テストでDockerコンテナ内で実行されているChromeインスタンスが必要な場合は、DockerコンテナからChromeバイナリにアクセスするために、--no-sandbox値をargsオブジェクトに追加してください。


"chromeOptions" : {
  "args" : ["--no-sandbox"]
}