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 をインストールします。
pip install playwright
playwright install
playwright install コマンドで、必要なブラウザの実行ファイルも自動的にダウンロードされます。
ステップ2: 基本的なコード例
test.py というファイルを作成し、以下のコードを記述してみましょう。
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 コマンドです。
playwright codegen https://www.google.com
このコマンドを実行すると、ブラウザが起動します。そこで手動で操作した内容(クリック、入力など)が、Python, JavaScript などのコードとしてリアルタイムに生成されます。
スクリプトのひな形を素早く作成したいときに非常に便利です。
まとめ
Playwright は、Web の自動化やテストをより簡単、高速、そして信頼性の高いものにしてくれる強力なツールです。
-
一つの API で複数のブラウザに対応
-
自動待機でコードをシンプルに
-
codegenでコード作成を効率化
ぜひ、今日から Playwright を使って、Web の自動化を始めてみませんか? 🚀