ChromeDriver の Capabilities を指定する


タイトル通り、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を立ち上げて

  1. 設定画面の該当項目を右クリック

  2. 検証を選択

  3. Elementsタブからフォーム要素名を視認

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

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

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

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

最新記事

すべて表示

SQLite(sqlite3)で “no such table”

小ネタです。 SQLiteを使っていて "no such table" とエラーが出た場合、 DBファイル名の指定が空になっている、という凡ミスを起こしていないかを確認してみましょう。 ・・・ そういう凡ミスをしてしばし悩んだので… ファイル名の指定が空になっている場合、一時的なインメモリDBとして保存されます(※1)。 つまりDB接続を切断すると中身は消えます。 なので接続

アプリケーションサーバにポートを指定せずに起動すると?

最近、 Goで書かれたアプリケーションサーバが起動しない! ->原因: .env ファイルが欠けていた というドタバタがありました。 結局Goと関係ないですが、この時、 「あまりGoに慣れてないのでGoの問題かと…」「DockerまだよくわかってなくてDockerの問題かと…」 というような声があったのて、あえてGoで検証してみようと思ったわけです。 さて、Goでサーバサイドのシステムを作

GitLab 9.1.2 (MySQL) を 11.4.0 (PostgreSQL) にアップグレード

弊社ではかなり前からGitLab(CE)を自社環境で運用しているのですが、ふと気付くと、バージョンがだいぶ先に行ってしまっていました。 とくに最近のバージョンでは Auto DevOps なども使えるようになっていたりするので、さすがにそろそろキャッチアップしたいと考えたわけです。 現行の環境は次の通りです: GitLab 9.1.2 sameersbn/gitlab 使用 MySQL 5.6