python之playwright的基本使用及說明
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
for browser_type in [p.chromium,p.firefox,p.webkit]:
browser = browser_type.launch(headless=False)
page = browser.new_page()
page.goto('https://www.baidu.com')
page.screenshot(path=f'screenshot-{browser_type.name}.png')
print(page.title())
browser.close()運行結(jié)果如下:

關(guān)鍵知識點
這段代碼使用了 Playwright(一個用于自動化瀏覽器操作的 Python 庫)來依次啟動三種主流瀏覽器(Chromium、Firefox、WebKit),訪問百度首頁,并對每個瀏覽器進(jìn)行截圖和打印網(wǎng)頁標(biāo)題。
下面是對每一行代碼的詳細(xì)解釋:
導(dǎo)入模塊
from playwright.sync_api import sync_playwright
- 從
playwright.sync_api模塊中導(dǎo)入sync_playwright。 - Playwright 提供了同步(sync)和異步(async)兩種 API 風(fēng)格,這里使用的是同步風(fēng)格,適合腳本式、順序執(zhí)行的任務(wù)。
啟動上下文管理器
with sync_playwright() as p:
- 使用
with語句創(chuàng)建一個 Playwright 的同步運行時上下文。 p是 Playwright 的主對象,通過它可以訪問瀏覽器類型(如chromium,firefox,webkit)。
好處:with 會自動在結(jié)束時關(guān)閉所有資源(如瀏覽器進(jìn)程),防止內(nèi)存泄漏。
遍歷三種瀏覽器
for browser_type in [p.chromium, p.firefox, p.webkit]:
p.chromium:代表基于 Chromium 的瀏覽器(如 Chrome、Edge)。p.firefox:代表 Mozilla Firefox。p.webkit:代表 Apple WebKit(在 macOS 上模擬 Safari 行為)。- 這里將依次啟動這三種瀏覽器。
注意:首次運行時,Playwright 會自動下載這些瀏覽器的精簡版(如果尚未安裝)。
啟動瀏覽器并打開新頁面
browser = browser_type.launch(headless=False) page = browser.new_page()
browser_type.launch(headless=False):
- 啟動對應(yīng)類型的瀏覽器。
headless=False表示以有頭模式(即可見窗口)運行;若設(shè)為True則后臺無界面運行(默認(rèn)值通常是True)。
browser.new_page():
- 打開一個新的標(biāo)簽頁(Page 對象),用于后續(xù)操作。
訪問百度首頁
page.goto('https://www.baidu.com')- 在當(dāng)前頁面中導(dǎo)航到
https://www.baidu.com。 - Playwright 會等待頁面加載完成(包括網(wǎng)絡(luò)空閑)后再繼續(xù)執(zhí)行。
截圖保存
page.screenshot(path=f'screenshot-{browser_type.name}.png')對當(dāng)前頁面進(jìn)行截圖,并保存為 PNG 文件。
文件名根據(jù)瀏覽器類型動態(tài)生成,例如:
screenshot-chromium.pngscreenshot-firefox.pngscreenshot-webkit.png
打印網(wǎng)頁標(biāo)題
print(page.title())
- 獲取當(dāng)前頁面的
<title>標(biāo)簽內(nèi)容(即網(wǎng)頁標(biāo)題)。 - 百度首頁的標(biāo)題通常是
"百度一下,你就知道"。 - 將其打印到控制臺。
關(guān)閉瀏覽器
browser.close()
- 關(guān)閉當(dāng)前瀏覽器實例及其所有頁面。
- 釋放系統(tǒng)資源。
雖然 with sync_playwright() 會在最后清理資源,但顯式調(diào)用 browser.close() 是良好實踐,尤其在循環(huán)中。
總結(jié):這段代碼的作用
使用 Playwright 自動化測試框架,在 Chromium、Firefox 和 WebKit 三種瀏覽器中分別打開百度首頁,截圖保存,并打印頁面標(biāo)題。
補(bǔ)充說明
依賴安裝:
pip install playwright playwright install # 安裝瀏覽器二進(jìn)制文件
常見用途:
- 跨瀏覽器兼容性測試
- 自動化截圖對比
- 爬蟲(繞過簡單反爬)
- UI 自動化測試
注意事項:
- WebKit 在 Windows/Linux 上的行為可能與 macOS 不完全一致。
- 如果網(wǎng)絡(luò)受限,
goto()可能超時,可加timeout=5000參數(shù)。 - 生產(chǎn)環(huán)境中建議使用
headless=True提高性能。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python?Playwright庫從入門到實戰(zhàn)教程
- Python使用Playwright實現(xiàn)更快更現(xiàn)代的瀏覽器自動化實戰(zhàn)指南
- Python使用Playwright實現(xiàn)屏幕截圖的示例詳解
- python playwright實現(xiàn)獲取當(dāng)前頁面的截圖
- Python Playwright 語法知識詳解(推薦)
- Python使用Playwright實現(xiàn)完美抓取復(fù)雜動態(tài)的網(wǎng)頁
- python playwright解決iframe上下文定位功能完整方案
- 基于Python Playwright進(jìn)行前端性能測試的腳本實現(xiàn)
相關(guān)文章
Python實現(xiàn)批量修改圖片格式和大小的方法【opencv庫與PIL庫】
這篇文章主要介紹了Python實現(xiàn)批量修改圖片格式和大小的方法,結(jié)合實例形式分析了Python基于opencv庫與PIL庫針對圖片的讀寫、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
pytest fixtures裝飾器的使用和如何控制用例的執(zhí)行順序
這篇文章主要介紹了pytest fixtures裝飾器的使用和如何控制用例的執(zhí)行順序,幫助大家更好的理解和使用pytest測試框架,感興趣的朋友可以了解下2021-01-01
在MAC上搭建python數(shù)據(jù)分析開發(fā)環(huán)境
這篇文章主要介紹了在MAC上搭建python數(shù)據(jù)分析開發(fā)環(huán)境的相關(guān)資料,需要的朋友可以參考下2016-01-01
Pandas進(jìn)行文本數(shù)據(jù)處理的全面指南
在數(shù)據(jù)分析中,文本數(shù)據(jù)是常見的數(shù)據(jù)類型之一,本文將詳細(xì)介紹 Pandas 中的文本處理功能,并通過實際代碼示例展示如何使用它們,希望對大家有一定的幫助2025-05-05
python+influxdb+shell編寫區(qū)域網(wǎng)絡(luò)狀況表
這篇文章主要為大家詳細(xì)介紹了python+influxdb+shell編寫區(qū)域網(wǎng)絡(luò)狀況表,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07

