寫在前面,歡迎去我的博客參觀:Scout He
Playwright,微軟瀏覽器自動化教程(一)
快速開始
1、簡介
Playwright 支持大部分的語言,Node.js, python, Java, .Net, 并且支持谷歌,火狐等瀏覽器,跨平臺,并且支持移動端的模擬,可以很方便的錄制腳本。
并且可以使用同步或異步的打開方式。我們先從同步開始。
2、快速開始
2.1、安裝
PIP
pip install --upgrade pip
pip install playwright
playwright install
2.2、錄制腳本
推薦新手首先使用提供的錄制功能,自己錄制一個腳本,然后對著生成的代碼,這樣會對這個的使用流程有一個大概的理解。使用下面的命令可以快速錄制一個腳本。
playwright codegen wikipedia.org
[站外圖片上傳中...(image-b78a78-1630515344983)]
-o <file name> 保存的文件名
--target <language> 生成的腳本語言,像javascript, python(默認(rèn))
-b 指定瀏覽器 chromium(默認(rèn)), firefox
--channel <channel> 指定瀏覽器版本"chrome","chrome-beta", "msedge-dev"
--device <deviceName> 模擬設(shè)備,像 "iPhone 11"
-h, --help 更多命令,請看幫助
3、腳本詳解
我們先從一個簡單錄制的腳本講起,在生成腳本的同時,還自動生成了注釋,可以說是非常方便,根據(jù)注釋也可以幫助我們理解代碼
from playwright.sync_api import Playwright, sync_playwright
def run(playwright: Playwright) -> None:
# 首先實例化一個瀏覽器對象
browser = playwright.chromium.launch(headless=False)
# 打開一個瀏覽器會話
context = browser.new_context()
# 打開一個新頁面
page = context.new_page()
# Go to https://www.google.com.hk/?gws_rd=ssl
page.goto("https://www.google.com.hk/?gws_rd=ssl")
# Click [aria-label="搜索"]
page.click("[aria-label=\"搜索\"]")
# Fill [aria-label="搜索"]
page.fill("[aria-label=\"搜索\"]", "playwright")
# Press Enter
# 這里是一個頁面導(dǎo)航功能
# 點(diǎn)擊元素可以出發(fā)導(dǎo)航,要求使用 page.expect_navigation(**kwargs)
# 這里點(diǎn)擊了搜索按鈕,這樣頁面信息可以獲取瀏覽器新的內(nèi)容
with page.expect_navigation():
page.press("[aria-label=\"搜索\"]", "Enter")
# 這里由于打開了新的頁面,所以需要使用page.expect_popup()來獲取新的頁面,并且用as來操作新的頁面
with page.expect_popup() as popup_info:
page.click("text=Playwright: Fast and reliable end-to-end testing for modern ...")
# 這里將新頁面命名為page1,并將新的頁面信息傳給page1
page1 = popup_info.value
# 關(guān)閉瀏覽器會話,和瀏覽器
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
4、總結(jié)
目前來看,這個錄制功能是比較方便好用的,可以幫助我們快速理解代碼
但是缺點(diǎn)也很明顯,這個錄制功能無法進(jìn)行循環(huán)操作,僅這一條就說明無法靠錄制解決所有的自動化任務(wù),除非你選擇在外層進(jìn)行循環(huán),但那樣會降低效率,并且從上面代碼上來看,其自動定位的元素都是text,無法從網(wǎng)頁根本上定位元素。
下一節(jié),我將介紹playwright的核心概念,來幫助理解整個的工作流程
參考文章:
playwright for python