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实现的爬取网易动态评论操作示例
Jun 06 Python
python处理两种分隔符的数据集方法
Dec 12 Python
python进程和线程用法知识点总结
May 28 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
Django 导出项目依赖库到 requirements.txt过程解析
Aug 23 Python
python中的函数递归和迭代原理解析
Nov 14 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
通用的Django注册功能模块实现方法
Feb 05 Python
python可视化大屏库big_screen示例详解
Nov 23 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
Protoss兵种介绍
2020/03/14 星际争霸
php URL编码解码函数代码
2009/03/10 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
PHP递归算法的简单实例
2019/02/28 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
python中os模块详解
2016/10/14 Python
Python之list对应元素求和的方法
2018/06/28 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
pandas重新生成索引的方法
2018/11/06 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
Python中的heapq模块源码详析
2019/01/08 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
中国高端家电购物商城:顺电
2018/03/04 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
行政人事主管岗位职责
2015/04/11 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
Android Studio 计算器开发
2022/05/20 Java/Android