python是开源工具吗_微软最强 Python 自动化工具开源了!不用写一行代码

1. 前言

最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python,它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行,playwright-python 提供了同步、异步的 API,可以结合 Pytest 测试框架使用,并且支持浏览器端的自动化脚本录制。

项目地址:

https://github.com/microsoft/playwright-python

2. 准备

在实战之前,我们只需要 2 步

第 1 步,安装 playwright-python 依赖库

# 安装依赖库

pip3 install playwright

第 2 步,安装主流的浏览器驱动

这样,会将 Chromeium、Firefox、Webkit 浏览器驱动下载到本地

# 安装浏览器驱动

python -m playwright install

3. 实战一下

3-1 录制脚本

我们先查看录制脚本的命令说明

# 我们通过下面命令打开 Chrome 浏览器开始录制脚本

# 指定生成语言为:Python(默认Python,可选)

# 保存的文件名:1.py(可选)

# 浏览器驱动:webkit(默认webkit,可选)

# 最后跟着要打开的目标网站(默认仅仅是打开浏览器,可选)

python -mplaywright codegen --target python -o 1.py -b webkit https://www.baidu.com

接着,在浏览器模拟搜索一次的操作,然后关闭浏览器

fromplaywright import sync_playwright

def run(playwright):browser = playwright.webkit.launch(headless=False)context = browser.newContext#Opennew pagepage = context.newPage# Gotohttps://www.baidu.com/page.goto("https://www.baidu.com/")

# Fill input[name="wd"]

page.fill("input[name="wd"]","AirPython")

# Press Enter# withpage.expect_navigation(url="https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=AirPython&fenlei=256&rsv_pq=a1739d870005eec3&rsv_t=e640wwS33ra1Koivxvy1WyTxyknRwnllWiw4JBqIYd/KUN/WKpWLtL2b2+0&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=21&rsv_sug1=18&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&inputT=6199&rsv_sug4=6199"):

withpage.expect_navigation:page.press("input[name="wd"]","Enter")

# Closepagepage.close

# ---------------------

context.close

browser.close

withsync_playwrightasplaywright:

run(playwright)

3-2 同步

同步的关键字为:sync_playwright

比如,我们依次使用三个浏览器内核打开浏览器,然后百度一下,接着对在搜索界面截图,最后关闭浏览器

fromtimeimport sleep

fromplaywright import sync_playwright# 注意:默认是无头模式withsync_playwrightasp:# 分别对应三个浏览器驱动forbrowser_typein[p.chromium, p.firefox, p.webkit]:

# 指定为有头模式,方便查看browser = browser_type.launch(headless=False)page = browser.newPagepage.goto( http://baidu.com )

# 执行一次搜索操作page.fill("input[name="wd"]","AirPython")

withpage.expect_navigation:page.press("input[name="wd"]","Enter")

# 等待页面加载完全page.waitForSelector("text=百度热榜")

# 截图page.screenshot(path=f example-{browser_type.name}.png )

# 休眠5s

sleep(5)

# 关闭浏览器browser.close

需要指出的是,playwright-python 内置的 API 基本上囊括常见的自动化操作

3-3 异步

异步步的关键字为:async_playwright

结合 asyncio,我们同时执行上面的操作

import asyncio

fromplaywright import async_playwright# 异步执行async def main:asyncwithasync_playwrightasp:forbrowser_typein[p.chromium, p.firefox, p.webkit]:

# 指定为有头模式,方便查看browser = await browser_type.launch(headless=False)page = await browser.newPageawait page.goto( http://baidu.com )

# 执行一次搜索操作await page.fill("input[name="wd"]","AirPython")

await page.press("input[name="wd"]","Enter")

# 等待页面加载完全await page.waitForSelector("text=百度热榜")

# 截图await page.screenshot(path=f example-{browser_type.name}.png )

await browser.closeasyncio.get_event_loop.run_until_complete(main)

4. 最后

事实上,Playwright 是一个跨语言的自动化框架,支持 Python、Java、JS 等。

Playwright 相比传统的自动化框架 Selenium 来说,在 Context 上下文及 API 使用上,显得更简洁且强大,更加详细的功能可以通过阅读原文去解锁。

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 振动传感器,Android光线传感器

Android光线传感器[编辑]概述光线传感器,即光电感应器,将收到之光线讯号转变成电器信号,此电信讯号更可进一步作各种不同的开关及控制动作。一、简介目前智能手机上用光线传感器来调节屏幕明暗,就是在光线强的地方手机会自动关掉键…

tcp unity 图片_Unity 简易聊天室(基于TCP)(2)

客户端用Unity开发,主要就是搭建一下聊天室的UI界面:输入框,聊天内容显示框,发送按钮灰色背景的就是Message,也就是聊天内容的显示框,是一个Text类型,这里创建UI方面就不多讲了在Canvas下挂一个…

android底部弹出显示不全,Android 解决 NestedScrollView 底部内容被遮挡显示不全

Android 解决 NestedScrollView 底部内容被遮挡显示不全很早之前就遇到过在使用 NestedScrollView 的时候发现底部的 View 总是显示不全, 看起来像是被底部的什 padding 遮挡了一样.这次是一个 recycleView, 在 list 没有数据的时候总是显示不全, 有数据的时候就正常了. 子类控…

php调用python绘图程序_如何在matlab中调用python程序

现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令,然后再通过…

解释器android,Android的设计模式-解释器模式

前言Android的设计模式系列文章介绍,欢迎关注,持续更新中:1.定义给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。2.介绍解释器模式属于行为型模式。解释器模…

下载人脸认证助手_关于微信人脸解封验证失败方法

微信解封人脸验证失败!我知道大家出现了这个问题。嗯,我也是前两天出现过的,前两天我一觉起来打开微信,发现自己的微信被封了。然后我就很着急的去解封。然后他就是让绑银行卡,然后进行实名认证之后进行人脸解封&#…

android照片如何查看时间,Android 获取照片时间

1、手机拍摄的照片(ExifInterface )ExifInterface exifInterface null;try {exifInterface new ExifInterface(oldPath);} catch (Exception e) {e.printStackTrace();}String watermarkTime exifInterface.getAttribute(ExifInterface.TAG_DATETIME);//ExifInterface方法只…

罗宾斯管理学13版pdf_全球著名管理学家,曾任五大高校教授,罗宾斯教你如何做好管理者...

在管理界,除了德鲁克能被称之为管理学大师,还有一位满腹经纶的管理学家,他就是斯蒂芬P罗宾斯,这位全球著名的管理学家,曾先后在布拉斯加大学、协和大学、巴尔的摩大学、南伊利诺伊大学、圣迭戈大学五大高校任教&#x…

android打开系统前置摄像头驱动,android 调用系统前置摄像头

第一种方式是采用MediaStore,调用系统原生的相机。Intent intent new Intent(MediaStore.ACTION_IMAGE_CAPTURE);intent.putExtra("camerasensortype", 2); // 调用前置摄像头intent.putExtra("autofocus", true); // 自动对焦intent.putExtra…

img标签默认有外边距吗_你知道css的盒模型吗?

CSS盒子模型与怪异盒模型 盒子模型(Box Modle)可以用来对元素进行布局,包括内边距(padding),边框(border),外边距(margin),和实际内容(content)这几个部分。标准盒模型 标准盒模型中盒子的大小是指:content border p…

js html 转换为富文本,如何将富文本得到的html转换为pdf?

问题描述我想将kindtor最后得到的html转换为pdf,有一种思路是将获得的html通过dom-to-image或者html2canvas转换为图片。在转换为pdf,但是我获得到html之后,运用dom-to-image转换或者html都不行,会报错出来。问题出现的环境背景及…

rust雪山矿洞几个入口_梅里雪山内转全记录(雨崩徒步:神湖神瀑冰湖)

头一次徒步完还愿意记录一下,两个原因吧:1)出发前搜雨崩攻略,各大网站都很少有详细且完整的回答,2)朋友圈发图后,好多朋友对雨崩有兴趣求攻略。先把此次行程大概列一下,如果还有兴趣…

微型计算机上的南桥芯片功能,微型计算机及接口技术2012年1月真题试题(04732)...

微型计算机及接口技术2012年1月真题试题及答案解析(04732)微型计算机及接口技术2012年1月真题试题及答案解析(04732),本试卷总分100分。一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的…

空值用前值填充_用Excel进行数据处理

Excel是一款常用的办公软件,它的功能强大,本文我们将学习如何使用Excel 2019进行数据处理。导入数据本文使用的数据来自This Week’s Garbage Data File.xlsx。数据格式如上所示:表示销售日期表示销售人员名称和ID表示销售区域表示总计为了对…

2014年计算机初级应用考试是,2014年国硕士研究生入学统一考试计算机基础试题...

请回答下列问题。(1) 本题中的网络可抽象为数据结构中的哪种逻辑结构?(2) 针对题42表中的内容,设计合理的链式存储结构,以保存题42表中的链路状态信息(LSI)。要求给出链式存储结构的数据类型定义,并画出对应题42表的链式存储结构示意图(示意…

已知三个用不同数制表示的整数_数学一轮复习26,数列的概念及简单表示法,常用方法及具体策略...

【考试要求】1.了解数列的概念和几种简单的表示方法(列表、图象、通项公式);2.了解数列是自变量为正整数的一类特殊函数.【知识梳理】1.数列的定义按照一定顺序排列着的一列数称为数列,数列中的每一个数叫做这个数列的项.2.数列的分类3.数列的表示法数列…

html播放mp4不显示画面,浏览器播放mp4格式视频时只有声音看不到画面的原因及解决方法(精)...

做HTML5网页,要播放视频,视频格式为mp4,结果浏览器只能听到声音,看不到画面。反复测试,多个浏览器均出现此问题。刚开始以为视频的格式不对,我是从MOV转的MP4格式,反复确认嵌入的视频确实是mp4格…

4j 禁止类输出日志_logback 日志详细讲解

Logback介绍Logback是一个开源日志组件,logback被分为3个组件,logback-core,logback-classic和logback-access.Logback是具体的日志框架,它要与slf4j结合起来使用。Slf4j:简单日志门面,不是具体的日志解决方案&#xf…

计算机桌面桌面设置动态视频,电脑壁纸 篇一:电脑设置动态视频桌面图文教程...

电脑壁纸 篇一:电脑设置动态视频桌面图文教程2019-04-01 11:45:213点赞8收藏0评论今天闲来无事,来张大妈也好久了,没什么技术感觉发文太难了,试着来一篇看看能不能过!相信还有大多数值友的电脑桌面都是一张静态的图片壁…

e300氛围灯哪里调节_让快乐来得更简单!体验新宝骏E300/E300 PLUS

有停车焦虑的小伙伴一定都想拥有一辆微型车,无论你多晚回家,只要有一小块空挡就能泊车,然后上楼睡觉。所谓快乐,莫过于此。在纯电动微型车领域,宝骏可以说是经验最为丰富的厂家之一。相继推出了E100和E200,…