playwright學習記錄
一、playwright介紹
playwright是一個自動化測試工具,由微軟開發,主要用於web端的UI測試,支持Python、Java,下文中介紹的playwright均指playwright-python。Playwright是一個強大的Python庫,僅用一個API即可自動執行Chromium
、Firefox
、WebKit
等主流瀏覽器自動化操作,並同時支持以無頭模式、有頭模式運行。Playwright提供的自動化技術是綠色的、功能強大、可靠且快速,支持Linux
、Mac
以及Windows
操作系統。
playwright相比已有的自動化測試框架來說,具有有很多優勢,比如:
- 跨瀏覽器,支持Chromium、Firefox、WebKit
- 跨操作系統,支持Linux、Mac、Windows
- 可提供錄制生成代碼功能,解放雙手
- 可用於移動端
目前存在的缺點就是生態和文檔還不是非常完備,比如沒有API中文文檔、沒有較好的教程和示例供學習。
二、安裝
1、安裝playwright庫
pip install playwright #python版本要求:3.7+以上
2、安裝瀏覽器驅動文件
python -m playwright install #因為安裝驅動是去外網下載,所以下載的時候會有點慢
三、基本使用方法
1、錄制腳本
輸入以下命令,pythonwright會使用谷歌瀏覽器打開百度並且錄制腳本,保存為test.py
python -m playwright codegen --target python -o test.py -b chromium https://www.baidu.com
--target:規定生成腳本的語言,有JS和Python兩種,默認為Python
-o:將錄制的腳本保存到一個文件
-b:指定瀏覽器驅動
2、定位方式
1)xpath
選擇器以//或..假定為xpath=selector
示例:page.click('xpath=//html')
簡寫方式:page.click('//html')
2)text
選擇器以引號("或')開頭和結尾為text=selector
示例:page.click('text="foo"')
簡寫方式:page.click('"foo"')
3)css
否則,假設選擇器為 css=selector
示例:page.click('css=div')
簡寫方式:page.click('div')
四、使用方法
1、添加cookie--addCookies
with sync_playwright() as p:
browser_type = p.chromium
browser = browser_type.launch(headless=False)
context = browser.newContext()
context.addCookies(cookies=[{'name': 'xx','value':'xx','path':'xx','domain':'xx'},
{'name': 'xx','value':'xx','path':'xx','domain':'xx'}]
page1 = context.newPage()
2、跳轉網址--goto
page1頁面進入指定網址
page1.goto('xx')
3、尋找元素--querySelector
尋找page1頁面上的元素,如果沒有找到,返回null
page1.querySelector('xx')
4、點擊鏈接跳轉新頁面
點擊網頁1的鏈接跳轉到網頁2后,定位網頁2
with page1.expect_popup() as popup_info:
page1.click('xx') # 此處點擊A頁面跳轉鏈接
page2 = popup_info.value
page2.click('xx') # B頁面的其他操作
page2.fill('xx', 'str')
5、點擊元素--click
page1.click('xx')
6、填充元素--fill
page1.fill('xx','xx')