BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Chromium、Firefox、WebKitベースのブラウザを自動化するPlaywright 1.0がリリース

Chromium、Firefox、WebKitベースのブラウザを自動化するPlaywright 1.0がリリース

原文(投稿日:2020/05/10)へのリンク

Playwright 1.0がリリースされた。Chromium、Firefox、WebKitといったブラウザエンジンをベースとする全ブラウザで、その自動化をサポートする。

Playwrightと同種のものには、ChromiumベースのブラウザのみをサポートするPuppeteerや、やや当てにならず厄介だと多くの人に思われているWebDriverがある。

PlaywrightはNode.jsを利用しており、npm経由で利用できる。

npm i playwright

以下に、非常にシンプルなPlaywrightの使用例をあげる。3つの主要なブラウザでウェブサイトを閲覧し、それぞれでスクリーンショットを保存する。

const playwright = require('playwright');
(async () => {
  for (const browserType of ['chromium', 'firefox', 'webkit']) {
    const browser = await playwright[browserType].launch();
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto('http://whatsmyuseragent.org/');
    await page.screenshot({ path: `example-${browserType}.png` });
    await browser.close();
  }
})();

Playwrightは非同期でイベント駆動型のアーキテクチャによって、不安定なタイムアウトの仕組みに依存することなく、UIが準備できるのを自動的に待機する。Playwrightでは、DOMの変更、ネットワークリクエスト、そのほか非同期な変更を待機することができる。

Playwrightはテストを迅速かつ効率的に行うため、単一のブラウザコンテキスト内で複数のウェブビューとコンテキスト動作によって、テストを並行に実行することができる。他にも、実際のユーザー体験をテストするためのモバイル環境、ジオロケーション、ロケールのエミュレーションなどの機能がある。

また重要な機能として、Webコンポーネント、ネットワークアクティビティ、ファイルのアップロードとダウンロード、フレーム横断およびタブ横断のアクティビティ、ネイティブ入力、Webワーカーなどを自動化してテストすることもできる。

現在のところ、Playwrightにはインストール時に自動でダウンロードされるWebKitとFirefoxのカスタムパッチビルドが必要だ。これらのパッチをFirefoxとWebKitの将来のバージョンに組み込むため、彼らとの協業が進んでいる。

PlaywrightはApache 2ライセンスで利用可能なオープンソースソフトウェアだ。開発者はPlaywright getting started guideに従おう。Playwrightを試すためのTry Playwrightプレイグラウンドや、テストランナーの使用例もある。

Microsoftのオープンソース行動規範に従い、Playwrightコントリビューションガイドラインに沿ったコントリビューションが歓迎されている。

この記事に星をつける

おすすめ度
スタイル

BT