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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
使用Python的PEAK来适配协议的教程
Apr 14 Python
python使用win32com库播放mp3文件的方法
May 30 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
python获取list下标及其值的简单方法
Sep 12 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
Linux下python制作名片示例
Jul 20 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
pytorch实现Tensor变量之间的转换
Feb 17 Python
python计算auc的方法
Sep 09 Python
python爬虫破解字体加密案例详解
Mar 02 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 日期加减的类,很不错
2009/10/10 PHP
Php图像处理类代码分享
2012/01/19 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
js验证是否为数字的总结
2013/04/14 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
javascript时间函数大全
2014/06/30 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
python线程、进程和协程详解
2016/07/19 Python
python区分不同数据类型的方法
2019/10/14 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
Python实现代码块儿折叠
2020/04/15 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
Python实现粒子群算法的示例
2021/02/14 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
纽约手袋品牌:KARA
2018/03/18 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers