首頁 > 軟體

Python playwright學習之自動錄製生成指令碼

2023-02-28 18:01:34

前言

playwright 可以支援自動錄製生成指令碼,也就是說只需要在頁面上點點點,就可以自動生成對應的指令碼了。

啟動執行

Playwright 具有開箱即用的生成測試的能力,是快速開始測試的好方法。它將開啟兩個視窗,一個是瀏覽器視窗,您可以在其中與要測試的網站進行互動,另一個是 Playwright Inspector 視窗,您可以在其中記錄測試、複製測試、清除測試以及更改測試語言。

使用命令列啟動

playwright codegen http://網站地址

啟動後,電腦上出現2個視窗,左邊是瀏覽器開啟網站可以操作,右邊是inspector 可以生成對應的指令碼

登入框輸入賬號和密碼點登入為例

一個完整的登入流程程式碼生成如下

from playwright.sync_api import Playwright, sync_playwright, expect
# 上海悠悠 wx:283340479  
# blog:https://www.cnblogs.com/yoyoketang/

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("http://127.0.0.1:8000/login.html")
    page.get_by_placeholder("請輸入使用者名稱").click()
    page.get_by_placeholder("請輸入使用者名稱").fill("yoyo")
    page.get_by_placeholder("請輸入密碼").click()
    page.get_by_placeholder("請輸入密碼").fill("aa123456")
    page.get_by_role("button", name="立即登入 >").click()

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

還可以選擇生成非同步程式碼

如果你是寫自動化測試用例,還能自動生成 pytest 框架的程式碼,簡直了!

from playwright.sync_api import Page, expect
# 上海悠悠 wx:283340479  
# blog:https://www.cnblogs.com/yoyoketang/

def test_example(page: Page) -> None:
    page.goto("http://127.0.0.1:8000/login.html")
    page.get_by_placeholder("請輸入使用者名稱").click()
    page.get_by_placeholder("請輸入使用者名稱").fill("yoyo")
    page.get_by_placeholder("請輸入密碼").click()
    page.get_by_placeholder("請輸入密碼").fill("aa123456")
    page.get_by_role("button", name="立即登入 >").click()

錄製相關命令操作

相關命令引數:

1.codegen在瀏覽器中執行並執行操作

playwright codegen playwright.dev

2.Playwright 開啟一個瀏覽器視窗,其視口設定為特定的寬度和高度,並且沒有響應,因為需要在相同條件下執行測試。

使用該–viewport選項生成具有不同視口大小的測試。

playwright codegen --viewport-size=800,600 playwright.dev

3.--device 使用設定視口大小和使用者代理等選項模擬移動裝置時記錄指令碼和測試。

模擬移動裝置iPhone11,注意:device的值必須用雙引號,並且區分大小寫

playwright codegen --device="iPhone 11" playwright.dev 

4.模擬配色

playwright codegen --color-scheme=dark playwright.dev

5.模擬地理位置、語言和時區

playwright codegen --timezone="Europe/Rome" --geolocation="41.890221,12.492348" --lang="it-IT" maps.google.com

6.保留經過身份驗證的狀態

執行codegen以在對談結束時–save-storage儲存cookie和localStorage 。這對於單獨記錄身份驗證步驟並在稍後的測試中重用它很有用。

執行身份驗證並關閉瀏覽器後,auth.json將包含儲存狀態。

playwright codegen --save-storage=auth.json

執行–load-storage以消耗先前載入的儲存。這樣,所有的cookie和localStorage都將被恢復,使大多數網路應用程式進入身份驗證狀態。

playwright open --load-storage=auth.json my.web.app
playwright codegen --load-storage=auth.json my.web.app
# Perform actions in authenticated state.

page.pause() 斷點偵錯

如果您想在某些非標準設定中使用 codegen(例如,使用browser_context.route()),可以呼叫page.pause(),這將開啟一個帶有 codegen 控制元件的單獨視窗。

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # Make sure to run headed.
    browser = p.chromium.launch(headless=False)

    # Setup context however you like.
    context = browser.new_context() # Pass any options
    context.route('**/*', lambda route: route.continue_())

    # Pause the page, and start recording manually.
    page = context.new_page()
    page.pause()

到此這篇關於Python playwright學習之自動錄製生成指令碼的文章就介紹到這了,更多相關Python playwright自動錄製生成指令碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com