python+playwright微软自动化工具的使用


Posted in Python onFebruary 02, 2021

它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行

playwright-python 提供了同步、异步的 API,可以结合 Pytest 测试框架使用,并且支持浏览器端的自动化脚本录制

项目地址:https://github.com/microsoft/playwright-python

安装playwright-python,执行命令:pip install playwright

python+playwright微软自动化工具的使用

安装成功之后,执行命令:python -m playwright install,自动下载 Chromeium、Firefox、Safari(WebKit)浏览器驱动到本地

python+playwright微软自动化工具的使用

同步

同步的关键字为:sync_playwright

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

from time import sleep
 
from playwright import sync_playwright
 
# 注意:默认是无头模式
 
with sync_playwright() as p:
    # 分别对应三个浏览器驱动
    for browser_type in [p.chromium, p.firefox, p.webkit]:
 
        # 指定为有头模式,方便查看
        browser = browser_type.launch(headless=False)
        page = browser.newPage()
        page.goto('http://baidu.com')
 
        # 执行一次搜索操作
        page.fill("input[name=\"wd\"]", "AirPython")
        with page.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 基本上囊括常见的自动化操作

异步

异步步的关键字为:async_playwright

结合 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(headless=False)
            page = await browser.newPage()
 
            await 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.close()
 
 
asyncio.get_event_loop().run_until_complete(main())

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

Playwright 相比传统的自动化框架 Selenium 来说,在 Context 上下文及 API 使用上,显得更简洁且强大

到此这篇关于python+playwright微软自动化工具的使用的文章就介绍到这了,更多相关python playwright微软自动化工具内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python类的专用方法实例分析
Jan 09 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
python下setuptools的安装详解及No module named setuptools的解决方法
Jul 06 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
python生成带有表格的图片实例
Feb 03 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
Python基于当前时间批量创建文件
May 07 Python
Python3 requests模块如何模仿浏览器及代理
Jun 15 Python
如何用python免费看美剧
Aug 11 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
详解分布式系统中如何用python实现Paxos
May 18 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 #Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 #Python
python3.9.1环境安装的方法(图文)
Feb 02 #Python
M1芯片安装python3.9.1的实现
Feb 02 #Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 #Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 #Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 #Python
You might like
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
基于jquery的无刷新分页技术
2011/06/11 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
python dict.get()和dict['key']的区别详解
2016/06/30 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Python图像读写方法对比
2020/11/16 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
信息管理专业推荐信
2013/10/29 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
2015年财政所工作总结
2015/04/25 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
PO模式在selenium自动化测试框架的优势
2022/03/20 Python