経緯
フロントエンドのデグレ確認をここ1年間、ものすごい時間をかけてやっているので、自動化できるところは自動化しようと踏み切りました。
Puppeteerとは
Puppeteerとは、Headless mode(GUI無し)のGoogle Chromeを操作するためのライブラリになります。
ほぼ自動化で片付くフロントエンドのテストは十分高速にできます。
あとはスクレイピングのツールとしても非常に便利のようです(スクレイピングはpythonで別途やってるのでPuppeteerを使っていない)。
インストール方法
インストール方法は、以下のコマンドでインストールできます。
// パッケージをインストールする場合
$ npm install puppeteer
// パッケージをインストールし、package.jsonに保存する場合
$ npm install --save puppeteer
動かしてハマった部分
サクっと動くかとjsを書いて、動かしてみるとエラーが出てしまいました。
// エラーメッセージ
Running as root without --no-sandbox is not supported.
「await puppeteer.launch」の部分で、以下のように記述することで解決しました。rootでは、「--no-sandbox」必須のようです。
1| // const browser = await puppeteer.launch();
2| const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});