哈嘍,大家好,我是六哥!今天我來給大家分享一下如何使用playwight呼叫chrome外掛,物件導向為功能測試及零基礎小白,我儘量用大白話的方式舉例講解,力求所有人都能看懂,建議大家先收藏,以免後面找不到。😎
什麼是chrome外掛?
就是輔助你工作生活的助手,會讓你事半功倍,舉個例子,下圖就是一個外掛:
實戰舉慄
透過playwright
啟動chrome
瀏覽器(有介面、帶代理和指定擴充套件,操作慢),訪問百度頁面並等待外掛載入,最後關閉瀏覽器。
程式碼詳解
程式碼開頭:關鍵引入與代理設定
from time import sleep
from playwright.sync_api import sync_playwright
proxy = {'server': '代理IP'}
from time import sleep
,這個sleep
函式可有用啦。咱都知道測試的時候,有時候得等網頁載入啥的,用sleep
就能讓程式暫停一會兒。比如說,你覺得某個操作後需要等 5 秒確保頁面穩定,就可以用sleep(5)
。
from playwright.sync_api import sync_playwright
,這裡的playwright
是個強大的自動化測試工具,sync_playwright
是啟動它的關鍵。
再看proxy
,這是代理設定。如果測試環境需要透過代理訪問網路,就得設定這個。要是填錯了,測試就可能出問題,就像你走錯路了一樣。
主函式:程式的入口
def test_Ext():
with sync_playwright() as p:
這裡def test_Ext():
定義了我們的測試函式。with sync_playwright() as p
呢,p
就像是我們操作瀏覽器的手柄。
# 設定代理並啟動帶有擴充套件程式的瀏覽器
extension_path = 'dist' # 替換為你的擴充套件程式路徑
browser = p.chromium.launch(
channel='chrome',
headless=False,
proxy=proxy,
args=[f'--disable-extensions-except={extension_path}', f'--load-extension={extension_path}'],
slow_mo=3000
)
extension_path = 'dist'
,這裡要換成你實際的擴充套件程式路徑,如果沒有就先不管。擴充套件程式能增強瀏覽器功能,比如有擴充套件能方便地獲取頁面資訊。
browser = p.chromium.launch(...)
裡,channel='chrome'
指定用chrome
瀏覽器。headless=False
表示瀏覽器有介面,這樣我們能看到操作過程。proxy=proxy
就是用前面設定的代理。args
裡的--disable - extensions - except={extension_path}
只啟用指定擴充套件,--load - extension={extension_path}
載入它。slow_mo=3000
讓操作慢一點,每步停 3 秒,方便我們觀察。
# 建立一個新的上下文
context = browser.new_context()
建立新上下文,這就好比給測試準備一個獨立的環境,和其他測試環境互不干擾。
# 建立一個新的頁面
page = context.new_page()
建立新頁面,就像在瀏覽器裡新開一個標籤頁。
# 訪問第一個網頁並處理彈出對話方塊
page.goto("https://www.baidu.com")
sleep(20)
page.goto("https://www.baidu.com")
讓頁面訪問百度。sleep(20)
是因為百度頁面內容多,等 20 秒確保完全載入。要是有彈出框,playwright
一般能自動處理。
# 關閉瀏覽器
browser.close()
測試完了,得關閉瀏覽器,釋放資源,不然會佔用電腦效能。
可能遇到的問題
要是有問題,像代理不對或者擴充套件路徑錯了,就會報錯。咱得根據報錯資訊排查,多試幾次熟悉流程,以後複雜的自動化測試程式碼咱也能輕鬆搞定。
效果
寫在最後
到此,關於使用呼叫 Chrome 外掛方法已分享完畢,感興趣的同學可以自行動手嘗試。 如需要全部原始碼,公眾號回覆“playwight案例”獲取,無引號。希望大家都能順利掌握,一起進步。也歡迎分享給更多有需要的朋友哦!