python之playwright的基本使用及說(shuō)明
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()運(yùn)行結(jié)果如下:

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

