亚洲中文字幕乱码亚洲-蜜桃成熟视频在线观看-免费中文字幕视频在线-中国五十路熟妇洗澡视频-亚洲av伊人啪啪c-国产精品成人一区二区-国产自拍视频一区在线观看-成人一区不卡二区三区四区-亚洲情精品中文字幕99在线

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

PlayWright新手全攻略:從入門到精通

0
分享至

01、簡介

軟開源自動化測試工具Playwright,支持主流瀏覽器,包括:Chrome、Firefox、Safari 等,同時支持以無頭模式、有頭模式運行,并提供了同步、異步的 API,可以結(jié)合主流測試框架使用,并且支持瀏覽器端的自動化腳本錄制等功能。



特點:

· 跨瀏覽器:Playwright 支持所有現(xiàn)代渲染引擎,包括Chromium、WebKit 和 Firefox;

· 跨平臺:在 Windows、Linux 和 MacOS 上進(jìn)行本地或 CI、無頭或有頭測試;

· 跨語言:在 TypeScript、JavaScript、Python、.NET、Java 中使用Playwright API;

· 測試移動網(wǎng)絡(luò):適用于 Android 和 Mobile Safari 的 Google Chrome 原生移動仿真。相同的渲染引擎適用于您的桌面和云端。

通俗的講: 就是一款主流的自動化測試工具,可以跨平臺、跨語言、開源、支持分布式、擁有成熟的社區(qū)及學(xué)習(xí)文檔,主要用于接口和web自動化測試。



02、安裝

1.Java 開發(fā)環(huán)境搭建

首先需要明確的是Java環(huán)境是使用maven管理項目的,所以我們只需用在項目中找到對應(yīng)的pom文件在其中添加如下內(nèi)容:

com.microsoft.playwright

playwright

1.25.0

就可以自動導(dǎo)入playwright。

Ps:因為maven的中央倉庫是外網(wǎng)地址,下載很慢需耐心等待,或者在修改鏡像站,改為國內(nèi)鏡像。

添加demo.java內(nèi)容如下:

package org.example;import com.microsoft.playwright.*;publicclassExample{publicstaticvoidmain(String[] args){try (Playwright playwright = Playwright.create()) {Browser browser = playwright.chromium().launch();Page page = browser.newPage(); page.navigate("https://www.cnblogs.com/longronglang"); System.out.println(page.title());}}}

運行這個類之后會下載下載 Playwright 包并安裝適用于 Chromium、Firefox 和 WebKit 的瀏覽器二進(jìn)制文件,如下所示:

2.Python開發(fā)環(huán)境搭建(網(wǎng)上教程很多此處不做過多說明)

1. 安裝Playwright依賴庫(Playwright支持Async\Await語法,故需要Python3.7+)

pip install playwright

2. 安裝Chromium、Firefox、WebKit等瀏覽器的驅(qū)動文件(內(nèi)置瀏覽器)

python -m playwright install

03、腳本錄制

此章主要是介紹如何錄制腳本,提供給需要使用錄制屏幕的人,若是不喜歡覺得自己手寫更方便的同學(xué)可以跳過此章。

1.錄制環(huán)境安裝

如同常見的自動化測試工具一樣,playwright同樣支持屏幕錄制并生成腳本。因為錄屏?xí)r需要node環(huán)境,所以請?zhí)崆鞍惭b。不會的同學(xué)請自行度娘,本文不做詳述。

確認(rèn)node環(huán)境及版本:

node -v



安裝:

npm init -y

npm i -D @playwright/test



2.錄制

錄制是不需要寫代碼的,只需要啟動瀏覽器,playwright就會幫我們生成腳本代碼。

輸入如下命令即可啟動,開啟錄制模式:

npx playwright codegen https://www.baidu.com(開啟錄屏模式)

Npx playwright open --viewport-size 1920,1080 https://www.baidu.com

Ps: 上文中的url 是我們需要錄制的網(wǎng)站地址,請根據(jù)實際使用情況自行配置。



同樣playwright是支持多語言的,我們可以在錄制界面隨意切換自己需要的語言,本文以Java為例,其余不做演示。



接下來我們只需要在瀏覽器中執(zhí)行相關(guān)操作,playwright就會把我們所有的操作記錄下來。

下圖中為在首頁的輸入框中輸入playwright并查詢。



當(dāng)操作完成之后,我們點擊playwright的停止和復(fù)制就可以得到錄制好的腳本



我們把復(fù)制好的腳本粘貼到編輯器中,點擊運行該腳本,通過運行后就證明我們錄制的腳本沒有問題,可以保存。如果有,則通過調(diào)整代碼或者推倒重新錄制即可解決。

至此錄制環(huán)境安裝和腳本錄制完成。

3.調(diào)試

如圖是playwright inspectior,我們已經(jīng)和它見過一次面了,大家應(yīng)該也不陌生。接下來詳細(xì)的為大家介紹一下它,它叫playwright inspectior是playwright框架自帶的GUI工具,可以幫助我們調(diào)試腳本



3.1 如何啟動playwright inspectior

在腳本中添加page.pause()方法即可啟動.



Ps: 其他方法本文不做推薦,后期請自行研究。

3.2. 界面介紹

(1)工具欄介紹



(2)元素欄介紹

如圖所示,當(dāng)我們不確定頁面某個元素位置怎么獲取時,可點擊檢測器,然后在頁面上點擊該元素,即可在輸入框中展示該元素。

也可以配合開發(fā)者小工具(F12)檢測你的元素否正確。



3.3. 如何調(diào)試

當(dāng)腳本出現(xiàn)問題之后,我們就可以使用playwright inspectior做調(diào)試

第一步:在你的腳本代碼中添加page.pause()方法,運行腳本。

第二步:等待playwright inspectior成功啟動之后,我們就能使用工具欄 播放、停止、逐步播放來確定問題所在

第三步:當(dāng)確定時元素位置錯誤,我們就能使用元素檢查器來確定正確的元素位置。

04、常用方法介紹

1.創(chuàng)建瀏覽器對象



.chromium().launch()方法就是指創(chuàng)建一個谷歌瀏覽器,同樣創(chuàng)建火狐就是.firefox().launch()

.setHeadless(false)方法是指在創(chuàng)建瀏覽器的時候,選擇無頭瀏覽器(true)還是帶頭瀏覽器(false)。

無頭瀏覽器:后臺運行,不在顯示器顯示腳本操作

有頭瀏覽器:在顯示器上展示腳本所有操作

2.創(chuàng)建瀏覽器上下文

瀏覽器上下文對象是瀏覽器實例中一個類似于隱身模式的會話,簡單說就是該上下文資源是完全獨立的,與其他的上下文互不干擾,所以在自動化測試中,可以對每一個測試用例都單獨開一個瀏覽器上下文。這對于多用戶,多場景的測試非常有用。

3.創(chuàng)建頁面

page就是瀏覽器中的標(biāo)簽頁,一個page對象就可以當(dāng)前頁面內(nèi)容交互



??轉(zhuǎn)崗軟件測試/野路子技能提升

??想了解更多漲薪技能提升方法

??可以到我的個人號:atstudy-js

即可加入領(lǐng)取 ??????

轉(zhuǎn)行、入門、提升、需要的各種干貨資料

內(nèi)含AI測試、 車載測試、AI大模型開發(fā)、BI數(shù)據(jù)分析、銀行測試、游戲測試、AIGC

4.常見頁面操作事件

這部分主要演示的常見頁面操作,例如:文本輸入、點擊、鍵盤鍵入、上傳文件、聚焦等等

1、輸入操作

語法:Locator.fill(value)

使用場景:文本框、日期/時間、日歷控件等輸入框

page.locator("#kw").fill("playwright");

2、點擊操作

語法:Locator.click()

適用場景:單選框、復(fù)選框、按鈕控件、常見可點擊控件等等!

page.locator("#kw").click();

3、單選框及復(fù)選框操作

語法: Locator.setChecked(checked)

適用場景: 單選框、復(fù)選框

//單選款 (選中,已選中狀態(tài)下無效) page.locator(".Volvo").setChecked(true);page.locator(".Volvo").check();System.out.println(page.locator(".Volvo").isChecked());//復(fù)選框(選中,已選中狀態(tài)下無效) page.locator("#checkbox [type='checkbox']:nth-child(7)").check();page.locator("#checkbox [type='checkbox']:nth-child(7)").setChecked(true);

4、下拉控件操作

語法:Locator.selectOption(values[, options])

適用場景:下拉框操作

//通過value值選擇page.locator("[name='select']").selectOption("opel");//通過可見文本選擇page.locator("[name='select']").selectOption(new SelectOption().setLabel("Audi"));5、鼠標(biāo)事件

5、鼠標(biāo)事件

語法:詳見案例

適用場景:常見鼠標(biāo)點擊事件

//常規(guī)單擊page.locator("#mouse2").click();//雙擊page.locator("#mouse3").dblclick();//右鍵單擊page.locator("#mouse5").click(new Locator.ClickOptions().setButton(MouseButton.RIGHT));//按住Shift鍵并單擊page.locator("#mouse2").click(new Locator.ClickOptions().setModifiers(Arrays.asList(KeyboardModifier.SHIFT)));//懸停在元素上page.locator("#mouse1").hover();//單擊左上角page.locator("#mouse1").click(new Locator.ClickOptions().setPosition(0, 0));//強(qiáng)制點擊page.locator("#mouse2").click(new Locator.ClickOptions().setForce(true));//調(diào)度點擊事件來觸發(fā)點擊page.locator("#mouse2").dispatchEvent("click");

6、模擬鍵盤輸入字符操作

語法:Locator.type(value)

使用場景:模擬鍵盤輸入字符

ps:大多數(shù)時候,Page.fill()可以滿足要求。如不能輸入時,可以考慮鍵入字符操作。

page.locator("#user").type("playwright");

7、單元素鍵盤事件操作

語法:Locator.press(鍵盤事件)

使用場景:定位元素并產(chǎn)生單個鍵盤事件

//模擬Ctrl+A 全選操作page.locator("#user").press("Control+A");//模擬回車操作 == > 跳轉(zhuǎn)到百度頁面page.locator(".baidu").press("Enter");

8、上傳文件

語法:Locator.setInputFiles()

使用場景:上傳一個或多個文件

//上傳一個文件page.locator("#load").setInputFiles(Paths.get("demo.md"));// 上傳多個文件page.locator("#load").setInputFiles(new Path[]{Paths.get("pom.xml"), Paths.get("demo.md")});

9、拖拽操作

語法:Locator.dragTo()

使用場景:常見元素拖動操作

// 拖拽元素page.locator("#A").dragTo(page.locator(".container ul:nth-of-type(2)"));

10、懸浮操作

語法:Locator.hover()

使用場景:常見元素懸浮操作

//懸浮page.locator("#action").hover();

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
重要突破,科學(xué)家注射一個腫瘤細(xì)胞,全身癌細(xì)胞竟然消失

重要突破,科學(xué)家注射一個腫瘤細(xì)胞,全身癌細(xì)胞竟然消失

心中的麥田
2026-04-19 18:26:11
美國至少10名科研人員離奇死亡或神秘失蹤引發(fā)廣泛關(guān)注!大都接觸UFO、航空航天、原子能等涉密項目,白宮承諾:徹查

美國至少10名科研人員離奇死亡或神秘失蹤引發(fā)廣泛關(guān)注!大都接觸UFO、航空航天、原子能等涉密項目,白宮承諾:徹查

大風(fēng)新聞
2026-04-20 09:35:11
特朗普第一任期的白宮律師突然爆猛料:特朗普已經(jīng)撐不下去了

特朗普第一任期的白宮律師突然爆猛料:特朗普已經(jīng)撐不下去了

西樓知趣雜談
2026-04-19 21:25:23
快檢查自家陽臺!有人家里已大量出現(xiàn),官方提醒:千萬別摸

快檢查自家陽臺!有人家里已大量出現(xiàn),官方提醒:千萬別摸

環(huán)球網(wǎng)資訊
2026-04-18 16:23:18
伊朗總統(tǒng):美國持續(xù)背信棄義 做出霸凌且不合理行為

伊朗總統(tǒng):美國持續(xù)背信棄義 做出霸凌且不合理行為

中國網(wǎng)
2026-04-20 11:09:10
普京訪華行程敲定,特朗普已下命令,中國向全球通告,無懼美國

普京訪華行程敲定,特朗普已下命令,中國向全球通告,無懼美國

田園小歸
2026-04-20 09:17:43
爭議?對手疑似伸腿踹張雪機(jī)車惹怒中國網(wǎng)友 張雪:很正常+很干凈

爭議?對手疑似伸腿踹張雪機(jī)車惹怒中國網(wǎng)友 張雪:很正常+很干凈

風(fēng)過鄉(xiāng)
2026-04-20 06:45:19
斯諾克世錦賽:丁俊暉送大禮!吉爾伯特被罰12分逆轉(zhuǎn),僅2-3落后

斯諾克世錦賽:丁俊暉送大禮!吉爾伯特被罰12分逆轉(zhuǎn),僅2-3落后

劉姚堯的文字城堡
2026-04-19 19:17:56
學(xué)術(shù)不端是學(xué)術(shù)晉級的最快捷徑

學(xué)術(shù)不端是學(xué)術(shù)晉級的最快捷徑

必記本
2026-04-19 22:50:38
王金平力挺了鄭麗文后,連勝文發(fā)聲了,竟主動為朱立倫證實1件事

王金平力挺了鄭麗文后,連勝文發(fā)聲了,竟主動為朱立倫證實1件事

瀲滟晴方DAY
2026-04-20 06:55:07
研究發(fā)現(xiàn):脂肪肝人若常補(bǔ)B族維生素,用不了多久,身體或有3好處

研究發(fā)現(xiàn):脂肪肝人若常補(bǔ)B族維生素,用不了多久,身體或有3好處

小胡軍事愛好
2026-03-05 20:56:45
季后賽首秀35分!就在今天,一項鄧肯保持的NBA紀(jì)錄被文班打破了

季后賽首秀35分!就在今天,一項鄧肯保持的NBA紀(jì)錄被文班打破了

世界體育圈
2026-04-20 12:45:16
魏建軍提議私家車10年后再年檢,用OBD和車聯(lián)網(wǎng)替代實地檢測

魏建軍提議私家車10年后再年檢,用OBD和車聯(lián)網(wǎng)替代實地檢測

快科技
2026-04-19 08:19:03
為什么全國人民都在拒接電話?

為什么全國人民都在拒接電話?

黯泉
2026-04-18 17:00:56
中國永遠(yuǎn)的校長,死于1962年

中國永遠(yuǎn)的校長,死于1962年

最愛歷史
2024-05-20 13:30:17
隨著巴黎圣日耳曼爆大冷門1-2,法甲最新積分榜出爐:爭冠白熱化

隨著巴黎圣日耳曼爆大冷門1-2,法甲最新積分榜出爐:爭冠白熱化

側(cè)身凌空斬
2026-04-20 07:55:12
上海長征醫(yī)院浦東院區(qū)啟用,緊鄰9號線曹路站!明后天推出院內(nèi)大型義診

上海長征醫(yī)院浦東院區(qū)啟用,緊鄰9號線曹路站!明后天推出院內(nèi)大型義診

上觀新聞
2026-04-20 11:18:09
前英超裁判:加布里埃爾得感謝哈蘭德,后者順勢倒下就是紅牌

前英超裁判:加布里埃爾得感謝哈蘭德,后者順勢倒下就是紅牌

懂球帝
2026-04-20 08:00:07
字母哥離隊倒計時!四隊瘋搶,雄鹿超市即將開張

字母哥離隊倒計時!四隊瘋搶,雄鹿超市即將開張

茅塞盾開本尊
2026-04-20 12:22:09
于海青:為何說廣東黃坤明書記不斷下基層讓企業(yè)信心滿滿?

于海青:為何說廣東黃坤明書記不斷下基層讓企業(yè)信心滿滿?

于海青
2026-04-19 19:54:18
2026-04-20 12:59:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

藍(lán)色起源一級火箭完美回收 客戶衛(wèi)星未入軌

頭條要聞

媒體:伊朗剛說不談 美國立即開打

頭條要聞

媒體:伊朗剛說不談 美國立即開打

體育要聞

七大獎項候選官宣!文班或全票DPOY

娛樂要聞

鹿晗生日上熱搜,被關(guān)曉彤撕下體面

財經(jīng)要聞

月之暗面IPO迷局

汽車要聞

把天門山搬進(jìn)廠?開仰望U8沖上45度坡的那刻 我腿軟了

態(tài)度原創(chuàng)

本地
旅游
健康
家居
公開課

本地新聞

12噸巧克力有難,全網(wǎng)化身超級偵探添亂

旅游要聞

800年紫藤花開如瀑 最美寧陽四月天

干細(xì)胞抗衰4大誤區(qū),90%的人都中招

家居要聞

自然慢調(diào) 慢享時光

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進(jìn)入關(guān)懷版