Playwrightとは
- Microsoft を中心に開発されているNode.js上からブラウザを操作するためのライブラリ。
- 特徴
- ブラウザ操作しながらテストコードを自動生成
- クロスブラウザテストが可能
- 対象ブラウザ:Chromium / Firefox / WebKit
- Python以外にもNode.jsなど他言語にも対応
事前準備
- インストール
pip install --upgrade pip
pip install playwright
playwright install
コード生成
-
次のコマンドを実行し、ブラウザ操作を行う。
-
Playwight Python
でGoogle検索を行い、検索結果の1番上のページにアクセスする場合
-
playwright codegen google.com -o test_google.py
※操作後をブラウザを閉じることでコードが保存される。
- 生成結果
test_google.py
from playwright.sync_api import Playwright, sync_playwright
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
# Open new page
page = context.new_page()
# Go to https://www.google.com/?gws_rd=ssl
page.goto("https://www.google.com/?gws_rd=ssl")
# Go to https://www.google.com/search?q=Playwright+Python&oq=Playwright+Python&aqs=chrome..69i57.11242j0j4&sourceid=chrome&ie=UTF-8
page.goto("https://www.google.com/search?q=Playwright+Python&oq=Playwright+Python&aqs=chrome..69i57.11242j0j4&sourceid=chrome&ie=UTF-8")
# Click text=microsoft/playwright-python - GitHub
page.click("text=microsoft/playwright-python - GitHub")
# assert page.url == "https://github.com/microsoft/playwright-python"
# Close page
page.close()
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
コード実行
- ブラウザ操作の再実行
python test_google.py
- ヘッドレスモード実行したい場合
# headless = False → True
browser = playwright.chromium.launch(headless=True)
- Safari(Webkit)/Firefoxでの実行
browser = playwright.webkit.launch(headless=False)
# or
browser = playwright.firefox.launch(headless=False)
- スクリーンショット取得
page.screenshot(path="./screenshot.png", full_page=True)