精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

微軟開源Python自動化神器Playwright

開發(fā) 后端 自動化
最近,微軟開源了一個項目叫「playwright-python」,作為一個興起項目,出現(xiàn)后受到了大家熱烈的歡迎,那它到底是什么樣的存在呢?今天為你介紹一下這個傳說中的小白神器。

 

最近,微軟開源了一個項目叫「playwright-python」,作為一個興起項目,出現(xiàn)后受到了大家熱烈的歡迎,那它到底是什么樣的存在呢?今天為你介紹一下這個傳說中的小白神器。

Playwright 是針對 Python 語言的純自動化工具,它可以通過單個API自動執(zhí)行 Chromium,F(xiàn)irefox 和 WebKit 瀏覽器,連代碼都不用寫,就能實現(xiàn)自動化功能。

雖然測試工具 selenium 具有完備的文檔,但是其學(xué)習(xí)成本讓一眾小白們望而卻步,對比之下 playwright-python 簡直是小白們的神器。

Playwright真的適用于Python嗎?答案是肯定的,微軟對于適用于Python的Playwright已準(zhǔn)備就緒。可能會發(fā)生API重大更改。但大概率是這種情況不會發(fā)生,微軟還表示僅在他們知道它可以改善您使用新庫的體驗時,才會可能這樣做。不過微軟也提醒尚不支持特定于供應(yīng)商的API的某些極端情況,例如收集Chromium跟蹤,覆蓋率報告等。

1、Playwright介紹

Playwright是一個強大的Python庫,僅用一個API即可自動執(zhí)行Chromium、Firefox、WebKit等主流瀏覽器自動化操作,并同時支持以無頭模式、有頭模式運行。

Playwright提供的自動化技術(shù)是綠色的、功能強大、可靠且快速,支持Linux、Mac以及Windows操作系統(tǒng)。

還有朋友這么夸:這個項目作為針對 Python 語言純自動化的工具,解放了代碼,實現(xiàn)了自動化功能,我們來看看怎么用它吧。

2、Playwright使用

安裝

Playwright的安裝非常簡單,兩步解決。 

  1. 安裝playwright庫  
  2. pip install playwright  
  3. 安裝瀏覽器驅(qū)動文件(安裝過程稍微有點慢)  
  4. python -m playwright install  
  5. 復(fù)制代碼 

上面兩個pip操作分別安裝:

  •  安裝Playwright依賴庫,需要Python3.7+
  •  安裝Chromium、Firefox、WebKit等瀏覽器的驅(qū)動文件

錄制

使用Playwright無需寫一行代碼,我們只需手動操作瀏覽器,它會錄制我們的操作,然后自動生成代碼腳本。

下面就是錄制的命令codegen,僅僅一行。 

  1. 命令行鍵入 --help 可看到所有選項  
  2. python -m playwright codegen 
  3. 復(fù)制代碼 

codegen的用法可以使用--help查看,如果簡單使用就是直接在命令后面加上url鏈接,如果有其他需要可以添加options。 

  1. python -m playwright codegen --help  
  2. Usage: index codegen [options] [url]  
  3. open page and generate code for user actions  
  4. Options:  
  5.   -o, --output <file name>  saves the generated script to a file  
  6.   --target <language>       language to use, one of javascript, python, python-async, csharp (default: "python")  
  7.   -h, --help                display help for command   
  8. Examples:   
  9.   $ codegen  
  10.   $ codegen --target=python  
  11.   $ -b webkit codegen https://example.com  
  12. 復(fù)制代碼 

options含義:

  •  -o:將錄制的腳本保存到一個文件
  •  --target:規(guī)定生成腳本的語言,有JS和Python兩種,默認(rèn)為Python
  •  -b:指定瀏覽器驅(qū)動

比如,我要在baidu.com搜索,用chromium驅(qū)動,將結(jié)果保存為my.py的python文件。 

  1. python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com  
  2. 復(fù)制代碼 

命令行輸入后會自動打開瀏覽器,然后可以看見在瀏覽器上的一舉一動都會被自動翻譯成代碼,如下所示。

結(jié)束后自動關(guān)閉瀏覽器,保存生成的自動化腳本到py文件。 

  1. from playwright import sync_playwright  
  2. def run(playwright):  
  3. browser = playwright.chromium.launch(headless=False 
  4. context = browser.newContext()  
  5. # Open new page  
  6. page = context.newPage()  
  7. page.goto("https://www.baidu.com/")  
  8. page.click("input[name="wd"]")  
  9. page.fill("input[name="wd"]", "jingdong")  
  10. page.click("text="京東"")  
  11. # Click //a[normalize-space(.)='京東JD.COM官網(wǎng) 多快好省 只為品質(zhì)生活']  
  12. with page.expect_navigation():  
  13.     with page.expect_popup() as popup_info:  
  14.         page.click("//a[normalize-space(.)='京東JD.COM官網(wǎng) 多快好省 只為品質(zhì)生活']")  
  15.     page1 = popup_info.value  
  16. # ---------------------  
  17. context.close()  
  18. browser.close()  
  19. with sync_playwright() as playwright:  
  20. run(playwright 

此外,playwright還提供了同步和異步的API接口,文檔如下。

鏈接:https://microsoft.github.io/playwright-python/index.html

同步

下面示例代碼:依次打開三個瀏覽器,前往baidu搜索,截圖后退出。 

  1. from playwright import sync_playwright  
  2. with sync_playwright() as p:  
  3. for browser_type in [p.chromium, p.firefox, p.webkit]:  
  4.     browser = browser_type.launch()  
  5.     page = browser.newPage() 
  6.     page.goto('https://baidu.com/') 
  7.     page.screenshot(path=f'example-{browser_type.name}.png' 
  8.     browser.close()  
  9.     復(fù)制代碼 

異步

異步操作可結(jié)合asyncio同時進行三個瀏覽器操作。 

  1. import asyncio  
  2. from playwright import async_playwright  
  3. async def main():  
  4. async with async_playwright() as p:  
  5.     for browser_type in [p.chromium, p.firefox, p.webkit]:  
  6.         browser = await browser_type.launch()  
  7.         page = await browser.newPage()  
  8.         await page.goto('http://baidu.com/')  
  9.         await page.screenshot(path=f'example-{browser_type.name}.png' 
  10.         await browser.close()  
  11.         asyncio.get_event_loop().run_until_complete(main()) 
  12.         復(fù)制代碼 

移動端

更厲害的是,playwright還可支持移動端的瀏覽器模擬。下面是官方文檔提供的一段代碼,模擬在給定地理位置上手機iphone 11 pro上的Safari瀏覽器,首先導(dǎo)航到maps.google.com,然后執(zhí)行定位并截圖。 

  1. from playwright import sync_playwright  
  2. with sync_playwright() as p:  
  3. iphone_11 = p.devices['iPhone 11 Pro']  
  4. browser = p.webkit.launch(headless=False 
  5. context = browser.newContext(  
  6.     **iphone_11,  
  7.     locale='en-US' 
  8.     geolocation={ 'longitude': 12.492507, 'latitude': 41.889938 },  
  9.     permissions=['geolocation']  
  10.  
  11. page = context.newPage()  
  12. page.goto('https://maps.google.com')  
  13. page.click('text="Your location"')  
  14. page.screenshot(path='colosseum-iphone.png' 
  15. browser.close() 
  16. 復(fù)制代碼 

另外,還可以配合pytest插件一起使用,感興趣可以自己試一下。

3、總結(jié)

playwright相比已有的自動化測試工具有很多優(yōu)勢,其中有:

支持所有瀏覽器的

  •  在Chromium,F(xiàn)irefox和WebKit上進行測試。Playwright擁有適用于所有現(xiàn)代瀏覽器的完整API覆蓋,包括Google Chrome和Microsoft Edge(帶有Chromium),Apple Safari(帶有WebKit)和Mozilla Firefox。
  •  跨平臺的WebKit測試。使用Playwright,使用適用于Windows,Linux和macOS的WebKit構(gòu)建,測試您的應(yīng)用程序在Apple Safari中的行為。在本地和CI上進行測試。
  •  測試手機。使用設(shè)備仿真在移動Web瀏覽器中測試您的自適應(yīng)Web應(yīng)用程序。
  •  無報文頭與有報文頭。Playwright支持所有瀏覽器和所有平臺的無頭(無瀏覽器UI)和有頭(有瀏覽器UI)模式。有報文頭模式適用于調(diào)試,而無報文頭適用于CI / cloud執(zhí)行。

擁有快速可靠的執(zhí)行

  •  自動等待APIs。Playwright交互會自動等待直到元素準(zhǔn)備就緒。這樣可以提高可靠性并簡化測試編寫流程。
  •  無超時自動化。Playwright會接收瀏覽器信號,例如網(wǎng)絡(luò)請求,頁面導(dǎo)航和頁面加載事件,以消除導(dǎo)致睡眠中斷的煩惱。
  •  與瀏覽器上下文保持并行。對于多個并行孤立的瀏覽器上下文可執(zhí)行環(huán)境重復(fù)使用一個單獨的瀏覽器實例。
  •  彈性元素選擇器。Playwright可以依靠面向用戶的字符串(例如文本內(nèi)容和可訪問性標(biāo)簽)來選擇元素。這些字符串比緊耦合到DOM結(jié)構(gòu)的選擇器更具彈性。

擁有強大的自動化功能

  •  多個域,頁面和框架。Playwright是一種進程外自動化驅(qū)動程序,不受頁面內(nèi)JavaScript執(zhí)行范圍的限制,并且可以自動執(zhí)行具有多個頁面的方案。
  •  強大的網(wǎng)絡(luò)控制。Playwright引入上下文范圍的網(wǎng)絡(luò)攔截以便進行終止或者模擬網(wǎng)絡(luò)請求。
  •  現(xiàn)代網(wǎng)絡(luò)功能。Playwright通過插入陰的選擇器,地理位置,權(quán)限,Web Worker和其他現(xiàn)代Web API支持Web組件。
  •  涵蓋所有場景的能力。支持文件下載和上傳,進程外iframe,原生輸入事件,甚至是深色模式。

但它也有局限性

  •  舊版Edge和IE11支持。Playwright不支持舊版Microsoft Edge或IE11(棄用通知)。支持新的Microsoft Edge(在Chromium上)。
  •  Java語言綁定:Playwright API目前無法在Java或Ruby中使用。這是暫時的限制,因為Playwright旨在支持任何語言的綁定。
  •  在真實的移動設(shè)備上進行測試:Playwright使用桌面瀏覽器來模擬移動設(shè)備。

雖然有一些局限,但現(xiàn)在playwright 已經(jīng)更新到了 1.7.0 版本,隨著一代代的更新,系統(tǒng)也會更為完善,作為一款小白神器,為大家省了那么多事情,我們相信它的未來會越來越好。 

 

責(zé)任編輯:龐桂玉 來源: Python編程
相關(guān)推薦

2022-05-07 07:47:51

ChromeAutoma

2022-07-04 09:00:36

Playwright自動化測試工具

2025-11-10 09:14:26

PythonExcel自動化

2024-02-26 00:00:01

?win32WindowsCOM

2021-11-24 22:41:00

微軟工具Windows 10

2023-04-27 07:57:52

AutoIt自動化工具

2013-12-02 12:44:28

Facebook自動化管理

2025-07-01 09:07:52

2021-07-04 12:44:04

PythonExcel身份證

2021-06-24 13:00:35

微軟開源可視化

2024-12-31 11:28:14

2017-12-17 21:58:18

2014-04-16 14:15:01

QCon2014

2025-01-03 16:47:02

Ansible自動化運維DevOps

2021-03-05 06:53:08

Android安卓自動化APP

2020-12-08 06:20:00

Python自動化工具開源

2013-01-04 10:03:53

家庭自動化微軟R2 Studio

2022-05-13 17:03:13

紅帽AzureAnsible

2024-06-17 10:34:12

2018-07-13 06:46:35

數(shù)據(jù)中心自動化微服務(wù)
點贊
收藏

51CTO技術(shù)棧公眾號

国产免费a∨片在线观看不卡| 中文字幕5566| 亚洲美女中文字幕| 国产深夜精品福利| 精品99在线观看| 久久资源综合| 欧美日本一区二区在线观看| 麻豆一区二区三区在线观看| 国产性xxxx18免费观看视频| 天天操天天操天天操| 日本欧美在线观看| 久久免费国产视频| 国产精品69久久久久孕妇欧美| 天堂va在线高清一区| 欧美性极品xxxx娇小| 欧美交换配乱吟粗大25p| 国产中文在线| 成人sese在线| 亚洲最大福利视频网| 亚洲中文一区二区| 一区精品久久| 久久久精品视频在线观看| 三级黄色片网站| 日韩影片在线观看| 欧美日韩电影在线播放| 久久久久久久久久久视频| jizz性欧美10| 中文字幕在线不卡| 日韩电影免费观看高清完整| 成人爽a毛片一区二区| 麻豆成人综合网| 奇米4444一区二区三区| 日韩乱码在线观看| 欧美日韩精品免费观看视频完整| 一区二区亚洲精品国产| 国产精品久久不卡| 久久久伦理片| 亚洲国产精品99| caopor在线| 日韩一区网站| 日韩欧美国产1| 最好看的中文字幕| 国产95亚洲| 6080亚洲精品一区二区| 国产免费999| 3d性欧美动漫精品xxxx软件| 欧美午夜宅男影院在线观看| 久久视频这里有精品| 欧美亚洲天堂| 亚洲成国产人片在线观看| 日本aa在线观看| 密臀av在线| 亚洲va天堂va国产va久| 精品人妻少妇一区二区| aaa在线播放视频| 一区二区三区四区五区视频在线观看| 中文字幕一区二区三区四区五区六区 | 色婷婷视频在线| zzijzzij亚洲日本少妇熟睡| 国产精品xxxx| 天天干天天草天天射| 99久久777色| 欧美连裤袜在线视频| 狠狠v欧美ⅴ日韩v亚洲v大胸| 久久综合久久99| 日本不卡久久| 日本最新在线视频| 亚洲欧美一区二区三区国产精品 | 欧美xxx黑人xxx水蜜桃| 曰韩精品一区二区| 麻豆tv在线播放| 中文在线资源| 欧美日韩久久不卡| 美女被艹视频网站| 高清精品xnxxcom| 精品亚洲一区二区| 日韩欧美视频免费观看| 99热国内精品| 国内精品久久久久久| 国产特黄大片aaaa毛片| 日韩激情视频网站| 91天堂在线观看| 乱色精品无码一区二区国产盗| 91视频观看免费| 亚洲自拍的二区三区| 久草中文在线观看| 精品久久久久久久久久久久久久| 亚洲熟妇av一区二区三区| 成人国产激情| 亚洲福利视频二区| 潮喷失禁大喷水aⅴ无码| 伊人色**天天综合婷婷| 68精品久久久久久欧美| 一道本在线视频| 成人av在线资源网站| 色一情一乱一伦一区二区三区 | 青娱乐国产精品视频| 久久资源综合| 久久中文字幕在线视频| 日韩成人免费在线观看| 另类欧美日韩国产在线| 国产精品区一区二区三在线播放| 国产在线观看免费网站| 亚洲精品老司机| 不卡av免费在线| 国产极品模特精品一二| 日日骚av一区| 伊人手机在线视频| 国产69精品久久久久毛片 | 9.1在线观看免费| 日本女优一区| 91精品国产免费久久久久久| 国产美女三级无套内谢| 国产亚洲综合在线| av之家在线观看| 免费精品一区| 视频直播国产精品| 日韩在线播放中文字幕| 国产99久久久国产精品免费看 | 欧美性猛交xxxx黑人猛交| 欧美xxxxxbbbbb| 不卡av一区二区| 欧美性视频网站| 蜜臀久久99精品久久久| 亚洲免费资源在线播放| 中文字幕在线综合| 国产伦精品一区二区三区视频| 久久久女人电视剧免费播放下载| 一区二区三区日| 国产精品免费人成网站| 成人免费观看毛片| 日韩最新在线| 91高清免费在线观看| 亚洲精品97久久中文字幕| 亚洲欧洲国产专区| 色啦啦av综合| 91亚洲国产| 国产免费久久av| 电影在线一区| 欧美午夜精品久久久久久孕妇 | 成人综合久久网| 成人毛片在线| 国产精品一二区| 888av在线| 欧美日韩aaa| 午夜精品福利在线视频| 看国产成人h片视频| 亚洲三区在线| 亚洲一区av| 欧美成年人网站| 不卡的日韩av| 偷拍一区二区三区四区| 日本少妇色视频| 久久久久国产精品一区二区 | 国产精久久久久| 激情丁香综合| 久久久福利视频| 日本欧美不卡| 日韩有码片在线观看| 国产在成人精品线拍偷自揄拍| 国产精品久久免费看| 免费黄频在线观看| 亚洲午夜电影| 欧美日韩亚洲在线| 国产精品原创视频| 欧美xxxx做受欧美| 天天操天天爱天天干| 一本色道亚洲精品aⅴ| 精品无码国产污污污免费网站| 美女视频黄a大片欧美| 亚洲国产精品女人| 国产精品白浆| 国产精品pans私拍| 麻豆网站在线看| 亚洲精品一区二区三区精华液| 天堂中文在线网| 国产精品第13页| 午夜男人的天堂| 日本免费在线视频不卡一不卡二| 最新av在线免费观看| 精品国产午夜肉伦伦影院| 日本三级韩国三级久久| 老司机午夜在线视频| 精品盗摄一区二区三区| 午夜精品久久久久久久蜜桃| 成人欧美一区二区三区白人 | 精品人人人人| 国产精品男人的天堂| 成人超碰在线| 色多多国产成人永久免费网站| 亚洲精品成人区在线观看| 色婷婷激情综合| 青青草手机在线观看| 久久久精品影视| 日本成人在线免费| 日韩vs国产vs欧美| www.九色.com| 色综合狠狠操| 欧美日韩电影一区二区| 国产精品1区| 国产999精品久久久影片官网| 在线观看中文| 色诱女教师一区二区三区| 五月婷中文字幕| 欧美一级久久久| 最近中文字幕在线免费观看| 亚洲国产精品嫩草影院| 日本不卡一二区| 久久日韩粉嫩一区二区三区| 老女人性生活视频| 久久国产夜色精品鲁鲁99| 黄色免费视频大全| 国产精品magnet| 一本久久a久久精品vr综合 | 成人毛片100部免费看| 欧美精品尤物在线观看| 精品久久蜜桃| 99精品在免费线中文字幕网站一区| 国产精品亚洲网站| 激情亚洲影院在线观看| 亚洲2020天天堂在线观看| 免费日本一区二区三区视频| 亚洲午夜激情免费视频| 日本一二三区在线视频| 亚洲第一福利视频| www.黄色av| 欧美一级二级三级乱码| 亚洲图片视频小说| 欧美色网一区二区| 一级特黄免费视频| 色哟哟亚洲精品| 久久精品视频5| 色诱视频网站一区| 国产精品21p| 欧美色图在线视频| 亚洲免费在线观看av| 偷拍一区二区三区四区| 日本熟妇乱子伦xxxx| 亚洲va中文字幕| 日韩 国产 在线| 精品福利免费观看| 久久国产黄色片| 欧美日在线观看| 久久久久在线视频| 欧美性生活一区| 在线免费看毛片| 欧美日本乱大交xxxxx| 91theporn国产在线观看| 欧美日韩免费不卡视频一区二区三区| 伊人久久国产精品| 91精品国产综合久久久久久久| 国产精品久久久久久久久久久久久久久久久久 | 国产精品久久久久久久浪潮网站| 国产日韩精品中文字无码| 国产精品三级视频| 182在线观看视频| 一区二区三区中文免费| 久久狠狠高潮亚洲精品| 色综合中文综合网| 中文字字幕在线观看| 91.com视频| 亚洲AV无码国产精品午夜字幕 | 噜噜噜噜噜在线视频| 欲色天天网综合久久| 欧美成人性生活视频| 欧美成在线视频| 黄色激情在线播放| 国产精品国产福利国产秒拍| 欧美少妇激情| 国产成人精品日本亚洲11| 日韩电影在线观看完整免费观看| 欧美资源一区| 一区二区中文| 国产熟女高潮视频| 激情综合五月天| 国产精品无码一区二区三| 久久久精品tv| 日韩一级片大全| 欧美日韩在线第一页| 成人免费一区二区三区| 日韩免费在线观看| 第一页在线观看| 欧美激情视频一区二区三区不卡| 九九色在线视频| 国产成人精品一区二区| 国产精品成人3p一区二区三区| 精品婷婷色一区二区三区蜜桃| 好吊色欧美一区二区三区| 精品久久久久久久久久久下田 | av免费在线免费| 国产福利精品视频| 亚洲一区二区三区在线免费| 欧洲精品久久| 影音先锋久久精品| 青青草原国产在线视频| 91麻豆产精品久久久久久| 无码黑人精品一区二区| 色综合婷婷久久| 亚洲产国偷v产偷v自拍涩爱| 中文日韩电影网站| 成人三级高清视频在线看| 成人黄色片在线| 精品九九在线| 黄色片久久久久| 不卡的av在线| 久久久久久久国产视频| 欧美三级视频在线观看| 日韩一区av| 久久久久久久久久国产| 亚洲精品一区二区在线播放∴| 农村寡妇一区二区三区| 欧美日韩成人| 色婷婷一区二区三区在线观看| 国产三级欧美三级日产三级99| 日韩久久精品视频| 精品国产百合女同互慰| av电影免费在线观看| 国产精品视频自拍| 精品国产99| 欧美xxxxx在线视频| av在线不卡观看免费观看| 妺妺窝人体色www聚色窝仙踪| 欧美一区二区三区婷婷月色 | 高清欧美性猛交| 99精品国产九九国产精品| 午夜精品一区二区在线观看的 | 精品日韩美女的视频高清| 亚洲av无码一区二区三区dv| 精品国模在线视频| 亚洲成人毛片| 波多野结衣激情| 国产一区二区毛片| 粉嫩av性色av蜜臀av网站| 欧美精品亚洲一区二区在线播放| 国产三级电影在线| 日韩av免费网站| 国产探花在线精品一区二区| 1024精品视频| 久久蜜臀中文字幕| 好吊色在线视频| 一区二区三区国产视频| 欧美色999| 亚洲午夜精品福利| 精品亚洲成a人| 亚洲天堂黄色片| 欧美成人a∨高清免费观看| 暖暖在线中文免费日本| 不卡视频一区| 国产欧美激情| www久久久久久久| 欧美日韩精品一区二区三区四区| 免费网站成人| 国产成人免费电影| 先锋影音久久| 国产午夜精品福利视频| 欧美日韩国产综合一区二区三区| 一级毛片视频在线观看| 91美女片黄在线观| 欧美视频亚洲视频| 久久偷拍免费视频| 欧美日韩一区二区三区免费看| 1024国产在线| 97影院在线午夜| 99精品国产一区二区青青牛奶 | 亚洲综合另类小说| 天堂91在线| 成人高h视频在线| 国产精品草草| 亚洲熟妇一区二区三区| 欧美日韩在线观看一区二区| 国产精品实拍| 黄色一区三区| 久久精品国产亚洲高清剧情介绍| 欧美人与禽zozzo禽性配| 日韩国产在线播放| 欧美性生活一级| 男人天堂手机在线视频| 久久综合狠狠综合久久综合88| 18国产免费视频| 欧美精品videosex牲欧美| 免费成人av| 网站在线你懂的| 狠狠躁夜夜躁人人爽天天天天97 | 一区二区三区四区毛片| 亚洲午夜免费电影| av中文字幕在线| 国产视频一区二区三区四区| 日韩av网站在线观看| 精品视频久久久久| 日韩中文字幕视频在线| heyzo欧美激情| 中文av一区二区三区| 亚洲一区二区欧美| 伊人在线视频| 欧美12av| 成人一道本在线| 亚洲中文字幕一区二区| 4k岛国日韩精品**专区| 亚洲精品97| 18精品爽国产三级网站|