puppeteer

Puppetterの導入

経緯

フロントエンドのデグレ確認をここ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']});