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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

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

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

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

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

1. Playwright介紹

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

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

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

2. Playwright使用

安裝

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

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

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

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

使用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:規(guī)定生成腳本的語言,有JS和Python兩種,默認(rèn)為Python -b:指定瀏覽器驅(qū)動

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

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

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

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

結(jié)束后自動關(guān)閉瀏覽器,保存生成的自動化腳本到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官網(wǎng) 多快好省 只為品質(zhì)生活’] with page.expect_navigation(): with page.expect_popup() as popup_info: page.click('//a[normalize-space(.)=’京東JD.COM官網(wǎng) 多快好省 只為品質(zhì)生活’]') 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()異步

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

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

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. 總結(jié)

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

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

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

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

開源組織:Microsoft

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 物和码官网,物和码,免费一物一码数字化营销SaaS平台 | 聚丙烯酰胺_阴离子_阳离子「用量少」巩义亿腾厂家直销,售后无忧 聚合甘油__盐城市飞龙油脂有限公司 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 制样机-密封锤式破碎机-粉碎机-智能马弗炉-南昌科鑫制样 | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 汽车水泵_汽车水泵厂家-瑞安市骏迪汽车配件有限公司 | 学叉车培训|叉车证报名|叉车查询|叉车证怎么考-工程机械培训网 | 事迹材料_个人事迹名人励志故事| 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 西安烟道厂家_排气道厂家_包立管厂家「陕西西安」推荐西安天宇烟道 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 数字展示在线_数字展示行业门户网站 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 洛阳装修公司-洛阳整装一站式品牌-福尚云宅装饰 | 温室大棚建设|水肥一体化|物联网系统 | 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 中直网_行业门户-行业人专业的交流平台!| 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 楼承板-开闭口楼承板-无锡海逵楼承板 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 免费分销系统 — 分销商城系统_分销小程序开发 -【微商来】 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 聚丙烯酰胺_厂家_价格-河南唐达净水材料有限公司 | 一技任务网_有一技之长,就来技术任务网| 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 |