微软这个太强了

Playwright安装和简单演示 Playwright建议使用官方Playwright Pytest插件来编写端到端测试。Pytest插件使用Playwright的同步版本,还有一个可通过库访问的异步版本。Playwright是专门为满足端到端测试的需求而创建的。在本地或 CI 上在 Windows、Linux 和 macOS 上进行测试,在无头或以本机移动仿真为标题。默认情况下,测试将在铬上运行。测试以无头模式运行,这意味着在运行测试时不会打开浏览器 UI。首先安装 Playwright 并运行示例测试以查看其运行情况。 阅读详情

GitHub链接:

https://github.com/microsoft/playwright-python
传送门:https://playwright.dev/
开源组织:Microsoft

e9c69e2686f8765d9fa5dacc92cd93cf.png

最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到底是什么样的存在呢?今天为你介绍一下这个传说中的小白神器。

Playwright 是针对 Python 语言的纯自动化工具,它可以通过单个API自动执行 Chromium,Firefox 和 WebKit 浏览器,连代码都不用写,就能实现自动化功能。

虽然测试工具 selenium 具有完备的文档,但是其学习成本让一众小白们望而却步,对比之下 playwright-python 简直是小白们的神器。

Playwright真的适用于Python吗?答案是肯定的,微软对于适用于Python的Playwright已准备就绪。可能会发生API重大更改。但大概率是这种情况不会发生,微软还表示仅在他们知道它可以改善您使用新库的体验时,才会可能这样做。不过微软也提醒尚不支持特定于供应商的API的某些极端情况,例如收集Chromium跟踪,覆盖率报告等。


1、Playwright介绍

Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。

Playwright提供的自动化技术是绿色的、功能强大、可靠且快速,支持Linux、Mac以及Windows操作系统。

还有朋友这么夸:这个项目作为针对 Python 语言纯自动化的工具,解放了代码,实现了自动化功能,我们来看看怎么用它吧。


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 --help
Usage: index codegen [options] [url]


open page and generate code for user actions


Options:
  -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 command


Examples:


  $ 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
复制代码

命令行输入后会自动打开浏览器,然后可以看见在浏览器上的一举一动都会被自动翻译成代码,如下所示。

e218c1c2ab7f11d8956c3ecf5af575d2.png

结束后自动关闭浏览器,保存生成的自动化脚本到py文件。


 
from playwright import sync_playwright


def 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_playwright
with 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 asyncio
from playwright import async_playwright
async 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_playwright
with 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上进行测试。Playwright拥有适用于所有现代浏览器的完整API覆盖,包括Google Chrome和Microsoft Edge(带有Chromium),Apple Safari(带有WebKit)和Mozilla Firefox。

  • 跨平台的WebKit测试。使用Playwright,使用适用于Windows,Linux和macOS的WebKit构建,测试您的应用程序在Apple Safari中的行为。在本地和CI上进行测试。

  • 测试手机。使用设备仿真在移动Web浏览器中测试您的自适应Web应用程序。

  • 无报文头与有报文头。Playwright支持所有浏览器和所有平台的无头(无浏览器UI)和有头(有浏览器UI)模式。有报文头模式适用于调试,而无报文头适用于CI / cloud执行。


拥有快速可靠的执行

  • 自动等待APIs。Playwright交互会自动等待直到元素准备就绪。这样可以提高可靠性并简化测试编写流程。

  • 无超时自动化。Playwright会接收浏览器信号,例如网络请求,页面导航和页面加载事件,以消除导致睡眠中断的烦恼。

  • 与浏览器上下文保持并行。对于多个并行孤立的浏览器上下文可执行环境重复使用一个单独的浏览器实例。

  • 弹性元素选择器。Playwright可以依靠面向用户的字符串(例如文本内容和可访问性标签)来选择元素。这些字符串比紧耦合到DOM结构的选择器更具弹性。


拥有强大的自动化功能

  • 多个域,页面和框架。Playwright是一种进程外自动化驱动程序,不受页面内JavaScript执行范围的限制,并且可以自动执行具有多个页面的方案。

  • 强大的网络控制。Playwright引入上下文范围的网络拦截以便进行终止或者模拟网络请求。

  • 现代网络功能。Playwright通过插入阴的选择器,地理位置,权限,Web Worker和其他现代Web API支持Web组件。

  • 涵盖所有场景的能力。支持文件下载和上传,进程外iframe,原生输入事件,甚至是深色模式。


但它也有局限性

  • 旧版Edge和IE11支持。Playwright不支持旧版Microsoft Edge或IE11(弃用通知)。支持新的Microsoft Edge(在Chromium上)。

  • Java语言绑定:Playwright API目前无法在Java或Ruby中使用。这是暂时的限制,因为Playwright旨在支持任何语言的绑定。

  • 在真实的移动设备上进行测试:Playwright使用桌面浏览器来模拟移动设备。

虽然有一些局限,但现在playwright 已经更新到了 1.7.0 版本,随着一代代的更新,系统也会更为完善,作为一款小白神器,为大家省了那么多事情,我们相信它的未来会越来越好。


 

 

 

推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径

量化: 定投基金到底能赚多少钱?  | 我用Python对去年800只基金的数据分析

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析|   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记灯谜答题王 |用Python做个海量小姐姐素描图碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案


 

 

 

 

 

 


 

 

 
点阅读原文,看Python全套!
Scrapy第十五篇:后起之秀-Playwright Playwright 是微软在 2020 年初开源的新一代自动化测试工具,它的功能类似于 Selenium、Pyppeteer 等,它的功能非常强大,使用便捷简单,缺点是更新较快,市面上相关文档又少。 阅读详情

相关推荐

【微软- Entra ID】Microsoft Entra ID

Microsoft Entra ID

Stongtang的博客 2446

playwright 不自动关闭 浏览器

Playwright 是一个自动化测试工具,可以用于测试 Web 应用程序的功能和性能。它使用各种浏览器的内核(如 Chrome、Firefox 和 Safari)运行测试,并且提供了一个简单易用的 API,可以让你模拟用户在浏览器中的操作。 如果你想要让 Playwright 不自动关闭浏览器,你可以使用 .keepBrowserAlive() 方法。这个方法可以在脚本运行完成后保留浏览器窗口,...

weixin_42613017的博客 4872

全网最全Linux在线+离线安装Playwright

Linux在线+离线安装Playwright

qq_41847894的博客 2100

微软开源 Python 自动化神器 Playwright

来自公众号:SegmentFault技术编辑:宗恩丨发自 思否编辑部最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到...

Python小二 2130

告别WSL!实测AMD ROCm7预览版在Windows下跑ComfyUI,速度提升与避坑全记录

本文详细记录了在Windows原生环境下部署AMD ROCm7+PyTorch+ComfyUI的全流程,相比WSL环境性能显著提升。涵盖硬件兼容性确认、开发环境配置、Python环境搭建、ComfyUI部署优化及性能对比测试,为AI绘图爱好者提供实用指南。

weixin_42528090的博客 671

7-1 链式基数排序 (20 分)

7-1 链式基数排序 (20 分) 实现链式基数排序,待排序关键字n满足1≤n≤1000,最大关键字数位≤5。 输入样例: 第一行输入待排序个数n(1≤n≤1000),再输入n个数(n的数位≤5)。 10 278 109 63 930 589 184 505 269 8 83 输出样例: 输出每趟分配-收集后链表中的关键字,趟数为序列中最大值的数位(如样例中930的数位为3),每行结尾有空格。 930 63 83 184 505 278 8 109 589 269 505 8 109 930 63 26

OwemShu的博客 4238

微软出品TTS太强了!VibeVoice网页版开箱即用体验

本文介绍了如何在星图GPU平台上自动化部署VibeVoice-TTS-Web-UI镜像,快速实现高质量多角色长时语音生成。用户无需配置环境或编写代码,即可通过网页界面粘贴对话脚本,一键生成自然流畅的播客级音频,典型应用于知识类播客制作、教育情景对话生成及无障碍文档语音化。

weixin_42230607的博客 310

Hcaptcha验证码的‘免浏览器’破解思路:协议分析与N值算法逆向

本文深入解析Hcaptcha验证码的‘免浏览器’破解思路,通过协议分析与N值算法逆向,实现高效自动识别。文章详细拆解Hcaptcha的API交互流程,揭示关键参数`req`和`n`的生成机制,并提供轻量级实现方案,显著降低资源消耗,适用于大规模数据采集等场景。

weixin_30838873的博客 535

实测微软VibeVoice:支持最长96分钟语音生成,太强了

本文介绍了如何在星图GPU平台上自动化部署VibeVoice-TTS-Web-UI镜像,实现高质量长时语音生成。用户无需配置环境,一键启动即可生成最长96分钟、多角色、带情感起伏的自然语音,典型应用于播客制作、有声书生成与AI教学课件配音。

weixin_42388898的博客 367

STM32与HT7038的高精度电能计量系统设计与实现

本文详细介绍了基于STM32微控制器与HT7038三相电能计量芯片的高精度电能计量系统设计与实现。文章从项目选型出发,深入剖析了硬件电路设计、SPI驱动开发、芯片校准及系统集成等关键环节,为智能电表、能源监控等应用提供了高性价比且稳定的国产化解决方案。

pytorch8learner的博客 389

C#实现不占用串口的串口监听与侦听技术:高效监控串口数据的最佳实践

本文详细介绍了如何实现不占用串口的串口监听与侦听技术,解决了传统串口监听可能带来的串口占用问题。通过使用虚拟串口、外部监听工具或第三方库,我们可以高效地实现串口数据的捕获与处理,适用于各种工业控制、物联网和嵌入式开发的应用场景。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1675

微软又发布了一款命令行神器,功能太强了!

点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱Github中文社区 作者:huber在刚入门计算机,或者入门编程的时候,经常会写一些很多代码,花了很久时间,好不容...

开发者技术前线-DevolperFront 599

MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)

阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。

darcsdn 1274

wp8系统不行android,微软的WP系统之死,并不是因为iOS和Android太强

无意中在V2EX论坛上看到有人在为微软的Windows phone系统(以下简称为WP)招魂,又让我重新回忆起了这个早已“病故”多年的系统,曾经的第三大移动操作系统在不断的作死中死去,它的死,可以说跟iOS和Android没有很大关系。难得有用户怀念WP,不过看评论还是各种劝退WP是微软于2010年末发布的一款手机操作系统,采用了令人诟病的扁平化的Metro UI。虽然微软一直在努力为WP续命,但...

weixin_39593519的博客 609

[后端设计]innovus命令editPin详解?

先放命令,有空慢慢写。

m0_61003348的博客 5731

嵌入式PCB电源完整性分析:PDN建模与电流密度优化

电源完整性(PI)是高速数字与混合信号系统稳定运行的基础,其核心在于保障芯片供电网络(PDN)在动态负载下的电压稳定与热安全。PDN分析本质上是通过量化电流密度与电压降两个关键物理量,揭示PCB走线、过孔及平面的载流瓶颈与压降路径。电流密度超标将引发局部温升与可靠性风险,而电压降则直接侵蚀器件供电裕量,导致复位、采样失真等典型故障。借助Altium Designer等工具开展工程级PDN建模,需严格依据电源预算表定义源/负载,并精准配置铜厚、过孔参数及IPC-2152限值,从而实现从原理图到制造工艺的闭环验

weixin_28949937的博客 211

微软开源的大模型太强了,数学推理超ChatGPT,论文、模型权重全部公开

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【计算机视觉和Transformer】交流群转载自:机器之心 | 编辑:陈萍有了这项研究,大模型的数学能力更强了。上周,微软与中国科学院联合发布的 WizardMath 大模型火了。该模型有 70B、13B、7B 三个参数规模,研究者在两个数学推理基准 GSM8k 和 MATH 上的测试表明,WizardMath...

阿木寺的博客 547

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

港科大(广州)与微软联手破解AI“老师太强学生跟不上“的世纪难题

港科大(广州)与微软联手破解AI"老师太强学生跟不上"的世纪难题

weixin_49122920的博客 78

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

微软ERP Microsoft Dynamics AX学习

微软ERP Microsoft Dynamics AX简介Microsoft Dynamics AX(以前称为Microsoft Business Solution Axapta)是一种可定制的商务管理解决方案,使您和您的员工能够更有信心地作出商业决策。Microsoft Dynamics AX 的工作方式与您熟悉的微软软件(例如Microsoft Office 程序和Microsoft SQ

fly321的专栏 3804

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

微软Microsoft系列产品

【桌面产品】Windows XP  Windows XP是微软的最新桌面操作系统,包含Windows XP Home和Windows XP Professional两个产品。Windows XP代表着高效而可靠的计算新标准,它通过强大的Internet和数字媒体功能让用户能够更加自由地感受数字世界,同时,超强的安全性和稳定性能够更加提高工作效率,为企业和个人用户带来全新的易于使用和更加兴奋的PC体

::: 移动互联网时代开发者 ::: 2763

Microsoft微软的发展

本报告旨在全面分析微软公司(Microsoft Corporation)的历史、发展、产品线、市场表现、财务状况、环境责任、未来工作模式以及面临的挑战和机遇。微软作为全球科技行业的领导者,其业务范围涵盖操作系统、办公软件、云计算、人工智能等多个领域。本报告将深入探讨微软的全球战略、市场扩张、合作伙伴关系以及可持续发展承诺。微软作为全球科技行业的领导者,其在操作系统、办公软件、云计算和人工智能等领域的创新和领导地位不容忽视。公司通过不断的技术研发和市场扩张,保持了强劲的增长势头。

abcdefgdjdjdj的博客 4318

微软 Microsoft

微软(Microsoft Corporation) (NASDAQ:MSFT,港交所:4338),是一家基于美国的跨国电脑科技公司,是世界PC(Personal Computer,个人计算机)机软件开发的先导,由比尔·盖茨与保罗·艾伦创始于1975年,公司总部设立在华盛顿州的雷德蒙市(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。总部位于美国华盛顿州的雷德蒙德,...

weixin_33795806的博客 7849

[Microsoft] 通过Microsoft Spotlight 中国站云技能挑战获取微软免费考试券

这是一篇关于微软Spotlight 推出学习活动的同时,如何获得免费考试券的方法,如果该文章在未来时间已经失效,那么建议你关注一下,有Azure China Cloud最新的消息会进行更新通知。

我在山城重庆,我希望能为这片软件沙漠地带贡献自己的一滴水,Stay tuned! 8548
上一篇: 百度AI课程来啦,全部免费!!!
下一篇: 女朋友让我深夜十二点催她睡觉,我用Python轻松搞定!
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值