LoginSignup
3
2

More than 5 years have passed since last update.

chromeのheadless browserを試してみる

Posted at

Headless browser

Headless Chrome が Chrome 59 に搭載されます!これは Chrome をヘッドレス環境で実行する手段です。Chrome をクローム(ブラウザーのUIのこと)なしに実行します!ヘッドレス Chrome によって、Chromium とそのエンジン Blink が提供するモダンなウェブプラットフォームの機能すべてがコマンドラインにもたらされるのです。
https://developers.google.com/web/updates/2017/04/headless-chrome?hl=ja

この記事にあるようにテストしたり色々な用途があります。今回はwebRTCのクライアントとして試すためにまずはセットアップ。

セットアップ

chrome59以上が入っていればalias貼るだけで動きます。

alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
alias chrome-canary="/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary"
alias chromium="/Applications/Chromium.app/Contents/MacOS/Chromium"

とりあえずCLIで動かす

かんたんに動かすだけなら実装もせず動きます。

$ chrome --headless --disable-gpu --screenshot https://www.chromestatus.com/

nodeで動かそう

幾つか必要なものがあります。

"async": "^2.5.0",
"asyncawait": "^1.0.6",
"chrome-launcher": "^0.6.0",
"chrome-remote-interface": "^0.24.4",
"lighthouse": "^2.4.0"

この辺ですね、npmでよしなに入れてください。
コードはコチラ

このように動きます。 localhost:9222でもコンソールが立ち上がるので、そちらも合わせてみてください。
起動時にnode7以上だとオプションで --harmony-async-awaitが必要でした。こらはnode7.6以上だと要らないのかな、asyncが正式にサポートされていそう。

HanedaKentarou-no-MacBook-Pro.local X_X  ~/Documents/workspace/web/skyway_multi (master)
% node  --harmony-async-await index.js                                                            [21:07:22]
Launcher setup
run setup
Title of page: HOME | CYOKODOG
3
2
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
3
2