PlaywrightはPuppetterチームだった方が作っているヘッドレス対応且つクロスブラウザのプロジェクト。Chromium、WebKit、Firefoxが使える。
WebKitで利用していたのだが、どうもサーバー上で実行させてみると下記のようなエラーが出て止まってしまった。
Protocol error (Playwright.createContext): Browser has been closed.
エラーメッセージもこれだけで、なにも分からない。
仕方がないのでPlaywrightのソースコードを見てみたところ、どうもいたるところでdebug関数を使用していることがわかった。これはnpmのdebugパッケージが使用されているもの。通常は何も出力されないが、DEBUG環境変数を指定することにより、指定されたデバッグメッセージを表示してくれるというもの。例えば下記のような感じで環境変数を指定すれば全てのメッセージを見ることができる。
DEBUG=* yarn dev
これでデバッグメッセージを見てみたところ、どうもLinux上の色んなシェアドライブラリが不足していた。とにかくエラーがなくなるまでライブラリをインストールしまくったら動くようになった。
ちなみに、かなりの数。しかもAmazon Linuxだとそもそもインストールできるのか謎のライブラリもあった。そのためUbuntuに切り替えて試したところ、数も減り、インストールもaptで全てでき改善できた。
ちなみに最初にchromium-browserをインストールしたことでだいぶ減らせたのではないかな……という気がしている。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント