Playwright 入門:次世代の Web 自動化・テストツールを使ってみよう 🚀

Web アプリケーションのテストや自動化に興味がある皆さん、こんにちは!

今回は、近年注目を集めている新しいツール Playwright をご紹介します。Selenium や Puppeteer といった既存のツールに比べて、Playwright は多くの優れた点を持ち、開発者やテスターの間で急速に人気が高まっています。

 

Playwright とは?

 

Playwright は、Microsoft が開発した Web ブラウザの自動操作ツールです。Web ブラウザをプログラムから制御し、Web アプリケーションのテスト、Web スクレイピング、自動化タスクなどを実行できます。

Selenium と同様に、様々なブラウザを自動操作できますが、Playwright にはいくつかの決定的な強みがあります。


 

Playwright が選ばれる3つの理由

 

 

1. 複数のブラウザを一つの API で操作

 

Playwright は、以下の3つの主要なブラウザをネイティブでサポートしています。

一つのコードを書くだけで、これらのブラウザ全てで動作させることが可能です。異なるブラウザ間でコードを書き直す必要はありません。

 

2. 自動待機機能 (Auto-waiting)

 

Web アプリケーションは、要素の読み込みに時間がかかることがあります。従来のツールでは、要素が表示されるまで待つためのコードを自分で書く必要がありました。

Playwright は、この「待機」を自動で行ってくれます。例えば、「ボタンをクリック」という指示を出すと、Playwright はボタンがクリック可能になるまで自動で待ってくれるため、よりシンプルで信頼性の高いコードを書くことができます。

 

3. 高速な実行と並列処理

 

Playwright は、Web ブラウザとの通信を効率的に行うことで、非常に高速にテストを実行できます。さらに、複数のテストを同時に実行する「並列処理」も簡単に行えるため、大規模なテストスイートでも実行時間を大幅に短縮できます。


 

Playwright を使ってみよう! (Python の例)

 

Playwright は、Python, JavaScript/TypeScript, Java, .NET など、多くの言語に対応しています。ここでは、Python を使った簡単な例を見てみましょう。

 

ステップ1: インストール

 

まず、ターミナルで以下のコマンドを実行し、Playwright をインストールします。

 

Bash
 
pip install playwright
playwright install

 

playwright install コマンドで、必要なブラウザの実行ファイルも自動的にダウンロードされます。

 

ステップ2: 基本的なコード例

 

test.py というファイルを作成し、以下のコードを記述してみましょう。

 

Python
 
import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        # Chromium ブラウザを起動
        browser = await p.chromium.launch(headless=False) # headless=False でブラウザが表示される
        page = await browser.new_page()

        # Google のトップページにアクセス
        await page.goto("https://www.google.com")
        print(await page.title())

        # 検索ボックスにテキストを入力
        await page.fill('textarea[name="q"]', 'Playwright')

        # 検索ボタンをクリック
        await page.click('input[name="btnK"]')
        
        # ページタイトルが "Playwright" を含んでいるか確認
        await page.wait_for_selector("text=Playwright")
        print(f"新しいページタイトル: {await page.title()}")

        # 3秒待機してブラウザを閉じる
        await page.wait_for_timeout(3000)
        await browser.close()

# プログラムを実行
asyncio.run(main())

 

このコードを実行すると、Google Chrome が自動で開き、「Playwright」と検索して、結果ページのタイトルを表示します。

 

便利な機能:codegen でコードを自動生成

 

Playwright のもう一つの魅力は、codegen コマンドです。

 

Bash
 
playwright codegen https://www.google.com

 

このコマンドを実行すると、ブラウザが起動します。そこで手動で操作した内容(クリック、入力など)が、Python, JavaScript などのコードとしてリアルタイムに生成されます。

スクリプトのひな形を素早く作成したいときに非常に便利です。


 

まとめ

 

Playwright は、Web の自動化やテストをより簡単、高速、そして信頼性の高いものにしてくれる強力なツールです。

  • 一つの API で複数のブラウザに対応

  • 自動待機でコードをシンプルに

  • codegen でコード作成を効率化

ぜひ、今日から Playwright を使って、Web の自動化を始めてみませんか? 🚀