- Web自動化/テストでは、Seleniumが事実上の標準だった
- 導入しやすく、ほぼすべてのプログラミング言語をサポートしている
- 十分ではあるが、まさにそこまでという感じ
- 最新のJavaScriptフレームワークのサイトでは、うまく動かないことがある(Angular、React など)
→ まったく動かないという意味ではなく、うまく機能しないことがあるということ
- ドキュメントは充実していると言われるが、実際には少しでも主要なパスから外れたことをしようとすると、例を見つけにくい
- Chai、Mocha、Cypressのようなものを使おうとしたが、設定が完全に異なり、Python開発者には簡単ではない
- Seleniumの代替は数十種類作られたが、その大半は数年で消えていった
Enter Playwright
- 素晴らしく、しかもMicrosoftが作っているのが重要。長くサポートされるはず
- Playwrightのキラーフィーチャーは「テスト自動生成」
- ブラウザを開いて手順どおりに操作すると、それを記録してPythonスクリプトにしてくれる
- SeleniumでXPathのようなものを探す手間を減らしてくれる
- こうして保存された手順は、ほとんど修正なしですぐに実行できる
- もう1つの利点は、実行過程を動画として保存して確認できること
- 唯一の欠点は、まだ新しいこと。バグも多く、ドキュメントもあまり良くない
- それでも全体的に見れば、すべての新しいプロジェクトで私はPlaywrightを選ぶと思う
4件のコメント
puppeteerを使っていたところから完全にPlaywrightへのオンボーディングに成功した立場としては、Playwrightのコード生成機能だけでも移行する価値は大きいと思います。
Puppeteerばかり長く使ってきて、しかもNodeしか使わない立場からすると、Playwrightへ移行するのはなかなか簡単ではないですね。
既存プロジェクトを移行することから考えるのではなく、まずは新規プロジェクトを始める際に Playwright を新たに導入することを積極的に検討してみてはどうでしょうか。あるいは、トイプロジェクトを始めてみるのもよいと思います。
Playwright は言語間(JS、Python)で API の一貫性があり、よりすっきりしている気がします。
特に Python の場合は async のサポートがとても充実していますね。