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 相关文章推荐
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
Python 爬虫的工具列表大全
Jan 31 Python
30秒轻松实现TensorFlow物体检测
Mar 14 Python
Python批量发送post请求的实现代码
May 05 Python
一看就懂得Python的math模块
Oct 21 Python
Python中字符串List按照长度排序
Jul 01 Python
Django缓存系统实现过程解析
Aug 02 Python
面向对象学习之pygame坦克大战
Sep 11 Python
python3 简单实现组合设计模式
Jul 02 Python
python3将变量输入的简单实例
Aug 19 Python
python time()的实例用法
Nov 03 Python
使用python爬取抖音app视频的实例代码
Dec 01 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实现的下载远程图片自定义函数分享
2015/01/28 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
JS二维数组的定义说明
2014/03/03 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
JS实现图片切换特效
2019/12/23 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
原生js生成图片验证码
2020/10/11 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
python list转dict示例分享
2014/01/28 Python
Python中几种操作字符串的方法的介绍
2015/04/09 Python
python实现将内容分行输出
2015/11/05 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
Pytorch to(device)用法
2020/01/08 Python
python 实现端口扫描工具
2020/12/18 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
中餐厅经理岗位职责
2014/04/11 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
2014年残联工作总结
2014/11/21 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
摩登时代观后感
2015/06/03 职场文书
余世维讲座观后感
2015/06/11 职场文书
地震捐款简报
2015/07/21 职场文书
活动宣传稿范文
2015/07/23 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
无线电通信名词解释
2022/02/18 无线电
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js