Playwright,微軟瀏覽器自動化教程(一)

寫在前面,歡迎去我的博客參觀: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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容