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