クラウド時代のWebアプリケーション・スマートフォンアプリを開発・運用する会社です。 03-4577-8680 03-6673-4950

ChromeDriver の Capabilities を指定する

2017-07-15

タイトル通り、ChromeDriverでのCapabilitiesの指定方法を見ていきます。
公式サイトはここです。
https://sites.google.com/a/chromium.org/chromedriver/

これがまた、具体的にどうしたらいいのかわかりづらいのです…。

ChromeDriver向けのCapabilitiesはまずchromeOptionsというキーの連想配列です。

{
  chromeOptions: {}
}

chromeOptionsの内容は次のような構造になっています。

{
  chromeOptions: {
    args: [],
    prefs: {}
  }
}

今回はargsprefsだけを挙げていますが、他にもあります。
一覧が公式リファレンスにあります。
https://sites.google.com/a/chromium.org/chromedriver/capabilities#TOC-chromeOptions-object

まずargsは何かというと、Chromeに対する起動オプションです。
コマンドラインから起動する場合に “–xxxx” などと指定するやつですね。
https://www.chromium.org/developers/how-tos/run-chromium-with-flags

これまたかなりの数あるわけですが、 “incognito” などはそこそこ使うのではないでしょうか。「シークレットウインドウで起動」ですね。
chromeOptionsの指定としては次のような形になります。

{
  chromeOptions: {
    args: ["incognito"]
  }
}

次にprefsは何かというと、Chromeの設定画面の項目です。
実際の設定画面の項目をリストしたものがパっと見つからないのですが、Chromeを立ち上げて

  • 設定画面の該当項目を右クリック
  • 検証を選択
  • Elementsタブからフォーム要素名を視認

とすることができるのでさほど難しいことではありません。

例としてdownload.default_directory(ダウンロード先フォルダを指定)・download.prompt_for_download(ダウンロード先フォルダを訪ねるダイアログの抑止)あたりを指定してみます。

{
  chromeOptions: {
    prefs: {
      download.default_directory: "/var/tmp",
      download.prompt_for_download: false
    }
  }
}

あとはこれを各言語において適切な構造・型で表現したものをDriverに渡すことになります。