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利用openpyxl库遍历Sheet的实例
May 03 Python
详解python中的json和字典dict
Jun 22 Python
python中datetime模块中strftime/strptime函数的使用
Jul 03 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 Python
Python3标准库总结
Feb 19 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
python构造IP报文实例
May 05 Python
如何解决安装python3.6.1失败
Jul 01 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 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 Hex RGB颜色值互换的使用
2013/05/10 PHP
PHP静态文件生成类实例
2014/11/29 PHP
浅谈PHP的反射API
2017/02/26 PHP
PHP实现简易图形计算器
2020/08/28 PHP
document.createElement()用法
2013/03/13 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
vue实现购物车列表
2020/06/30 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Python采用Django开发自己的博客系统
2020/09/29 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
简单了解python反射机制的一些知识
2019/07/13 Python
python如何导入依赖包
2020/07/13 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
2014年消防工作实施方案
2014/02/20 职场文书
程序员求职信
2014/04/16 职场文书
自我管理的活动方案
2014/08/25 职场文书
教师节标语大全
2014/10/07 职场文书
2014年体育工作总结
2014/11/24 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery