微软出了一个 Python 入门学习神器

微软再出神器,Notebook正在改头换面! VS Code又出新动作! VS Code的Python扩展宣布增加Native Notebooks功能! Notebook想必接触过Python开发的同学都不会陌生,一款数据分析的神器,使用广泛而且备受好评。 目前Notebook相关的产品已经出现了很多款: Jupyter Notebook JupyterLab Polynote 各具特色,各有所长。 这一次,Microsoft也开始向这款数据神器动手了,推出了一款名为Native Notebooks的工具。 阅读详情

图片

图片

最近,微软开源了一个项目叫「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   saves the generated script to a file
  --target        language to use, one of javascript, python, python-async, csharp (default: “python”)
  -h, --help                display help for command

Examples:

  c o d e g e n     codegen     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

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

图片

结束后自动关闭浏览器,保存生成的自动化脚本到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,小编给大家准备了一份Python学习资料和公开课,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂。

👉Python学习路线汇总

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

img

👉Python必备开发工具👈

在这里插入图片描述

👉精品Python学习书籍👈

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

温馨提示:篇幅有限,已打包文件夹,获取方式:点击这里【 Python全套资料】 即可获取。

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

获取方式:点击这里【 Python全套资料】 即可获取。

Qt中输出中文出现乱码(win10系统下) 当我刚开始在win10下使用Qt Creator(4.3.0版本)时,遇到过这么个问题:当程序输出中文时,中文会乱码,程序本身的中文未乱码。 乱码截图如下: 我查阅了很多资料,最后在自己的不断的尝试下,解决了乱码问题。进入主题,具体如何解决乱码? ① 首先,我们先设置一下,可以直观在Qt界面上看到文件的编码方式: 点击工具(tool)->选项(option)->文本编辑器->显示->Diplayfileencoding,将其勾选上,点击apply,即可,截图如下... 阅读详情

相关推荐

手把手教你用TLP350驱动IGBT:光耦隔离驱动电路完整设计教程

本文详细介绍了如何使用TLP350光耦隔离驱动电路设计IGBT驱动方案。从TLP350芯片特性分析到驱动电路架构设计,包括信号调理、自举电源和栅极控制网络,再到PCB布局优化和保护电路设计,提供了完整的实战指南。通过实测波形分析和故障排查,帮助工程师快速掌握IGBT驱动电路的设计要点和进阶技巧。

weixin_30566063的博客 825

微软再出神器,这次终于对Python下手了!

​微软又出良心工具了!微软于7月1日发布一款新的VS Code插件,名为Pylance,这个名称是向Monty Python的Lancelot致敬。Pylance距离截稿不足2天时间,VS Code插件安装量已经达到6800+。在2018年,Microsoft的Python团队发布了Python语言服务器,将Visual Studio的丰富Python IntelliSense支持引入了VS Code。

libaiup的博客 2388

Marin说PCB之LPDDR5的布线注意事项--03

这个规则中是把每个字节中的WCK to RDQS 以及DM / DQ to WCK等长规则都加到了DM / DQ这个等长规则中去了,因为芯片手册上的设计要求中的DM / DQ这个group的等长误差是+-50MIL, WCK to RDQS的等长group的规则是62.5MIL,DM / DQ to WCK等长group的规则是相对松一些是150MIL。其实上面的等长规则还是建少了一些的,例如手册上要求的每个channel的WCK0:1,WCK2:3等长误差在+-488MIL,这个规则建议还是补上去吧。

weixin_45223454的博客 1229

python是微软开发的吗_Python是如何在微软发展壮大的

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。如果你的公司在拥抱开源的道路上进展缓慢,不妨从微软的Python经验中取取经。随着我们跨入2019年,很显然,对我们来说,仅仅做一个软件消费者是不够的, 还需要引导像Capital One和Comcast这样的大企业意识到:软件正在“吞噬世界”,他们需要开放软件开发来生存(和繁荣)。 即使对于那些理解这一...

weixin_39753616的博客 846

modbus

从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。

lunhuicnm的博客 9750

GD32F4系列替换STM32F4,HAL库CAN初始化卡死?一个Sleep模式的坑与填坑实录

本文详细解析了GD32F4系列替换STM32F4时,HAL库CAN初始化卡死的问题根源——Sleep模式差异。通过对比两款芯片CAN控制器的默认状态,提出了不修改HAL库源码的解决方案,即在HAL_CAN_MspInit()中清除SLEEP位,并分析了该方法的优势。文章还提供了国产MCU替换的通用建议和调试技巧,帮助开发者高效解决问题。

weixin_29174013的博客 217

CSS中的动画效果

每一帧图片连接到一块就组成了一个动画。小熊奔跑,背景及小熊。

2401_83641491的博客 773

TSmaster CANFD配置避坑指南:为什么你的PCAN盒不支持最新版本?

本文针对TSmaster配置PCAN硬件进行CANFD通信时的常见问题,提供了详细的避坑指南。重点解析了CANFD配置中TSEG1等关键参数的理解误区,并深入探讨了TSmaster新版本与PCAN硬件驱动之间的兼容性变化,帮助工程师快速定位并解决连接失败或无法发送CANFD报文等问题。

alpha的博客 542

微软开源 Python 自动化神器 Playwright

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

Python小二 2130

MMCV安装后报错‘from mmcv import Config’?别慌,这是MMCV 2.0的锅!快速降级回退MMCV 1.x全指南

本文详细解析了MMCV 2.0版本升级导致的‘from mmcv import Config’报错问题,提供了从诊断到降级回退MMCV 1.x的完整解决方案。通过pip和OpenMIM工具链的实操指南,帮助开发者快速解决版本冲突,确保项目稳定运行。

weixin_29102619的博客 263

【01、Go与VSCode的安装】

小白学Go语言

wangruil的博客 1536

能带动python的笔记本电脑,python用什么笔记本电脑

通常,程序员使用的笔记本电脑至少应具有256GB的SSD存储,8GB的RAM,6小时的电池寿命以及带有不错的GPU的Core i5处理器。但是,这些只是基本要求,因此我建议使用更具吸引力的笔记本电脑(如果它不超出您的预算),以帮助您更快地完成编程任务,为将来的挑战做准备,并让您在速度上保持领先编程的关键。对于程序员的笔记本电脑,最理想的内存是多少,我们建议至少8GB的内存。但是,如果您不关心更多的存储空间,则可以使用更少的存储空间,并且需要一个运行速度更快的驱动器,SSD是一个可靠的选择。

2301_81895949的博客 1063

STC8H单片机ADC实战:从读取电位器到串口绘图,12位精度玩起来

本文详细介绍了STC8H单片机的ADC功能实战应用,从读取电位器到串口绘图,展示了12位精度的实现方法。通过硬件连接、代码配置、串口数据传输及高级优化技巧,帮助开发者快速掌握ADC模块的使用,适用于各种传感器数据采集和信号处理场景。

weixin_28278377的博客 344

微软出了一个Python初学者神器

最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到底是什么样的存在呢?今天为你介绍一下这个传说中的小白神器。 Playwright 是针对 Python 语言的纯自动化工具,它可以通过单个API自动执行 Chromium,Firefox 和 WebKit 浏览器,连代码都不用写,就能实现自动化功能。 虽然测试工具 selenium 具有完备的文档,但是其学习成本让一众小白们望而却步,对比之下 playwright-python...

m0_64355682的博客 2957

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

微软新出了一个Python入门神器?

最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到底是什么样的存在呢? 今天为你介绍一下这个传说中的小白神器。 Playwright 是针对 Python 语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox 和 WebKit 浏览器,连代码都不用写,就能实现自动化功能。虽然测试工具 selenium 具有完备的文档,但是其学习成本让一众小白们望而却步,对比之下 playwright-python .

码农黑羽的博客 427

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

微软出了一个Python小白神器!

开发者(KaiFaX)面向全栈工程师的开发者专注于前端、Java/Python/Go/PHP的技术社区GitHub链接:https://github.com/microsoft/playw...

AI研习社 237

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

探索微软开源Python自动化神器Playwright

探索微软开源Python自动化神器Playwright 相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具。写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑。 虽然selenium有完备的文档,但也需要一定的学习成本,对于一个纯小白来讲还是有些门槛的。 同时最近被自动化折磨得非常痛苦,为了实现e2e测试,我们花大量的时间来编写e2e代码,同时此类代码也非常不稳定,经常挂掉,这一点来说是非常的不友好的。作为一个“懒人”,我肯定不愿意花大量的时间在编写测

我是新手的博客 2248

微软出Django教程啦!

周围很多小伙伴都在学Python。Python功能强大,语法简单,可以干很多事情。比如自动化测试,运维,机器学习,数据分析,金融股票量化分析,其实很多小公司或者大厂的运维部门都用Pytho...

cainiao_python的博客 377

微软再出神器,这次终于对 Python下手了

“ 阅读本文大概需要 3 分钟。 ”微软又出良心工具了!微软于 7 月 1 日发布一款新的 VS Code 插件,名为 Pylance,这个名称是向 Monty Python 的 Lan...

静觅 304
上一篇: 学完Python基础之后,你应该学习这个
下一篇: Excel一小时,Python五分钟:承认吧,你就是干不过会Python的
AI大模型学习
博客等级 码龄4年 2471粉丝 620原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值