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

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

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

瀏覽:50日期: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 編程
相關文章:
主站蜘蛛池模板: 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 南京精锋制刀有限公司-纵剪机刀片_滚剪机刀片_合金刀片厂家 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 江门流水线|江门工作台|江门市伟涛行工业设备有限公司 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 旋转/数显粘度计-运动粘度测定仪-上海平轩科学仪器 | 风淋室生产厂家报价_传递窗|送风口|臭氧机|FFU-山东盛之源净化设备 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 换链神器官网-友情链接交换、购买交易于一体的站长平台 | 网站建设-临朐爱采购-抖音运营-山东兆通网络科技 | 期货软件-专业期货分析软件下载-云智赢| 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 首页 - 军军小站|张军博客| 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 气动|电动调节阀|球阀|蝶阀-自力式调节阀-上海渠工阀门管道工程有限公司 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 |