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 MySQLdb Windows下安装教程及问题解决方法
May 09 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
对Python中9种生成新对象的方法总结
May 23 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 Python
Django model反向关联名称的方法
Dec 15 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
Pytorch之卷积层的使用详解
Dec 31 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
Python图片验证码降噪和8邻域降噪
Aug 30 Python
Python集合set()使用的方法详解
Mar 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
PHP中,文件上传
2006/12/06 PHP
php反弹shell实现代码
2009/04/22 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
Python实现端口复用实例代码
2014/07/03 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python requests证书问题解决
2019/09/05 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
新闻编辑自荐信
2013/11/03 职场文书
卫生安全检查制度
2014/02/04 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
股东合作协议书
2014/04/14 职场文书
活动总结新闻稿
2014/08/30 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
人事任命书范本
2015/09/21 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
css弧边选项卡的项目实践
2023/05/07 HTML / CSS