LoginSignup
1
0

More than 5 years have passed since last update.

SeleniumからヘッドレスChromeをプロキシ環境下で使用する

Last updated at Posted at 2018-07-24

概要

とある用途でSeleniumを使用してWebスクレイピングをするときにヘッドレスChromeを利用しました。
職場でもテストするときにヘッドレスで動かせるようにしたろ!って設定したら動かなかったのです:weary:
お前の環境だけじゃい!という内容かもしれないが、動くようにするまでの設定をまとめます:metal:

環境

Selenium Gridのhubもnodeも全てローカル環境のみで試しています。

ソフト バージョン
OS Windows7 64bit
Chrome 67.0.3396.99
ChromeDriver 2.40

試したら動かなかった

Selenium(Java)でE2Eテスト環境を構築するで作成した環境に対し、ヘッドレス Chrome ことはじめを参考に設定を変えました。

argsの詳細はCapabilities & ChromeOptionsとかList of Chromium Command Line Switchesで見れます。

prefsはPreferencesConfiguring Other Preferencesですかね。
良い一覧が見つかりませんでした。

Pitalium環境でなくても org.openqa.selenium.remote.DesiredCapabilities に同じような設定をすれば動くんじゃないかと思います。

capabilities.json
[
 {
  "browserName": "chrome",
  "chromeOptions": {
    "args": [
         "headless",
         "disable-gpu",
         "remote-debugging-port=9222"
    ],
    "prefs": {
       "download.prompt_for_download":false
    }
  }
 }
]

動かしてみるとブラウザは画面に表示されないが・・・
http://localhost:4444/grid/console を確認するとブラウザは使われている。
qiita1.JPG

しかし指定した要素が見つからないエラーで終わってしまいます。
もちろんヘッドレスの設定でなければ要素は見つかり操作が進みます。

動かなかったのでChromeのデバッグをしてみた

ここで念のため設定していた『remote-debugging-port=9222』が活躍します。

Chromeを開き http://localhost:9222 にアクセスすると開いているタブがリンクで一覧表示されます。
そのリンクを開くとヘッドレスで動いているブラウザの画面が見れるのですが、以下のように驚きの白さ:innocent:
qiita2.JPG

プロキシの設定をしたら動いた

とりあえずプロキシ環境下だからプロキシ設定してみるかなと以下のように設定。

capabilities.json
[
 {
  "browserName": "chrome",
  "chromeOptions": {
    "args": [
         "headless",
         "disable-gpu",
         "proxy-server=http://proxyserver:8080",
         "remote-debugging-port=9222"
    ],
    "prefs": {
       "download.prompt_for_download":false
    }
  }
 }
]

先ほどと同様に http://localhost:9222 にアクセスして画面を見ると表示されてるやん!
※問題あるとき以外はこの画面開かない方が良さそう。操作を取ってしまい進まなくなることがある。
qiita3.JPG

んーヘッドレスの時はユーザープロファイルがなんか違うのか?
Stack Overflowとか色々調べたら原因わかりそうだけど解決したから良しとしとこ:thinking:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0