You are currently viewing Playwright Python 自動化教學:從安裝到實戰

Playwright Python 自動化教學:從安裝到實戰

Playwright 是一個強大的瀏覽器自動化框架,原生支援 Chromium、Firefox 和 WebKit,能在 Windows、macOS、Linux 上一致運行,適合用來做端到端測試、資料擷取(爬蟲)、以及高效率的網頁操作自動化。它提供可靠的自動等待機制與直覺的定位器 API(Locator),減少因元素尚未渲染或事件未完成而產生的脆弱測試;同時支援無頭與有頭模式、行為錄製與程式碼生成、並行執行、網路攔截與模擬(如假資料、延遲、離線)、以及完整的追蹤檔與快照,方便你在失敗時快速回溯問題。本文將以 Python 為主線,從環境安裝與基本設定開始,示範如何啟動瀏覽器、導航頁面、輸入與點擊、等待動態內容、到使用 codegen 錄製互動並產生可維護的腳本;也會介紹同步與非同步(async/await)的使用差異、最佳化選擇器策略、常見錯誤與除錯技巧,最後補充在 CI/CD 與多瀏覽器矩陣下的實務建議,幫你把自動化從單機腳本,進一步提升到可擴展、可監控、且穩定的工作流程。

  • 安裝 Playwright 套件:
    • pip install playwright
  • 基本使用:啟動瀏覽器並開啟網頁
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # 開啟瀏覽器(非隱藏模式)
page = browser.new_page()
page.goto("https://example.com")
print(page.title()) # 印出網頁標題
browser.close()

自動化點擊與輸入:模擬使用者操作

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://example.com/login")

    # 輸入帳號與密碼
    page.fill('input[name="username"]', 'my_user')
    page.fill('input[name="password"]', 'my_password')

    # 點擊登入按鈕
    page.click('button[type="submit"]')

    # 等待跳轉後的頁面載入
    page.wait_for_load_state('networkidle')
    print("登入成功,當前頁面標題:", page.title())
  • 進階應用:自動生成操作程式碼
    • Playwright 提供一個超強功能:Codegen,可以自動記錄你的操作並產生對應的 Python 程式碼! 這會開啟瀏覽器並記錄你所有的點擊、輸入等操作,並即時產生 Python 程式碼。你可以把這段程式碼複製到你的專案中,作為自動化腳本的基礎。
    • 使用方式
    • 使用情況
      • 使用後可以發現網頁的每一個元件都會變成可以選擇的,所以寫程式的時候只要執行動作,則相對應的程式碼就會被馬上編輯出來,當編輯完後就可以直接複製到專案中
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments