电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

微軟開源最強Python自動化神器Playwright(不用寫一行代碼)

瀏覽:49日期:2022-06-30 11:56:20

相信玩過爬蟲的朋友都知道selenium,一個自動化測試的神器工具。寫個Python自動化腳本解放雙手基本上是常規的操作了,爬蟲爬不了的,就用自動化測試湊一湊。

雖然selenium有完備的文檔,但也需要一定的學習成本,對于一個純小白來講還是有些門檻的。

最近,微軟開源了一個項目叫「playwright-python」,簡直碉堡了!這個項目是針對Python語言的純自動化工具,連代碼都不用寫,就能實現自動化功能。

微軟開源最強Python自動化神器Playwright(不用寫一行代碼)

可能你會覺得有點不可思議,但它就是這么厲害。下面我們一起看下這個神器。

1. Playwright介紹

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

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

微軟開源最強Python自動化神器Playwright(不用寫一行代碼)

2. Playwright使用

安裝

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

# 安裝playwright庫pip install playwright# 安裝瀏覽器驅動文件(安裝過程稍微有點慢)python -m playwright install

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

安裝Playwright依賴庫,需要Python3.7+ 安裝Chromium、Firefox、WebKit等瀏覽器的驅動文件錄制

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

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

# 命令行鍵入 --help 可看到所有選項python -m playwright codegen

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

python -m playwright codegen --helpUsage: index codegen [options] [url]open page and generate code for user actionsOptions: -o, --output <file name> saves the generated script to a file --target <language> language to use, one of javascript, python, python-async, csharp (default: 'python') -h, --help display help for commandExamples: $ codegen $ codegen --target=python $ -b webkit codegen https://example.com

options含義:

-o:將錄制的腳本保存到一個文件 ?target:規定生成腳本的語言,有JS和Python兩種,默認為Python -b:指定瀏覽器驅動

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

python -m playwright codegen --target python -o ’my.py’ -b chromium https://www.baidu.com

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

微軟開源最強Python自動化神器Playwright(不用寫一行代碼)

結束后自動關閉瀏覽器,保存生成的自動化腳本到py文件。

from playwright import sync_playwrightdef run(playwright): browser = playwright.chromium.launch(headless=False) context = browser.newContext() # Open new page page = context.newPage() page.goto('https://www.baidu.com/') page.click('input[name='wd']') page.fill('input[name='wd']', 'jingdong') page.click('text='京東'') # Click //a[normalize-space(.)=’京東JD.COM官網 多快好省 只為品質生活’] with page.expect_navigation(): with page.expect_popup() as popup_info: page.click('//a[normalize-space(.)=’京東JD.COM官網 多快好省 只為品質生活’]') page1 = popup_info.value # --------------------- context.close() browser.close()with sync_playwright() as playwright: run(playwright)

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

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

同步

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

from playwright import sync_playwrightwith sync_playwright() as p: for browser_type in [p.chromium, p.firefox, p.webkit]: browser = browser_type.launch() page = browser.newPage() page.goto(’https://baidu.com/’) page.screenshot(path=f’example-{browser_type.name}.png’) browser.close()異步

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

import asynciofrom playwright import async_playwrightasync def main(): async with async_playwright() as p: for browser_type in [p.chromium, p.firefox, p.webkit]: browser = await browser_type.launch() page = await browser.newPage() await page.goto(’http://baidu.com/’) await page.screenshot(path=f’example-{browser_type.name}.png’) await browser.close()asyncio.get_event_loop().run_until_complete(main())移動端

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

from playwright import sync_playwrightwith sync_playwright() as p: iphone_11 = p.devices[’iPhone 11 Pro’] browser = p.webkit.launch(headless=False) context = browser.newContext( **iphone_11, locale=’en-US’, geolocation={ ’longitude’: 12.492507, ’latitude’: 41.889938 }, permissions=[’geolocation’] ) page = context.newPage() page.goto(’https://maps.google.com’) page.click(’text='Your location'’) page.screenshot(path=’colosseum-iphone.png’) browser.close()

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

3. 總結

playwright相比已有的自動化測試工具有很多優勢,比如:

跨瀏覽器,支持Chromium、Firefox、WebKit 跨操作系統,支持Linux、Mac、Windows 可提供錄制生成代碼功能,解放雙手 可用于移動端

目前存在的缺點就是生態和文檔還不是非常完備,比如沒有API中文文檔、沒有較好的教程和示例供學習。不過相信,隨著知道的人越來越多,未來會越來越好。

GitHub鏈接:https://github.com/microsoft/playwright-python

開源組織:Microsoft

到此這篇關于微軟開源最強Python自動化神器Playwright(不用寫一行代碼)的文章就介紹到這了,更多相關Python Playwright內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 广东成考网-广东成人高考网| 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 阜阳在线-阜阳综合门户 | 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 大数据营销公司_舆情监测软件_上海SEO公司-文军营销官网 | 深圳成考网-深圳成人高考报名网 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 撕碎机,撕破机,双轴破碎机-大件垃圾破碎机厂家 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | POS机办理_个人pos机免费领取-银联pos机申请首页 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 成都思迪机电技术研究所-四川成都思迪编码器 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 开云(中国)Kaiyun·官方网站 - 登录入口| 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 气动隔膜泵厂家-温州永嘉定远泵阀有限公司| 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 服务器之家 - 专注于服务器技术及软件下载分享 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 今日扫码_溯源二维码_产品防伪一物一码_红包墙营销方案 | 三轴曲线机-端子插拔力试验机|华杰仪器 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 |