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中的list列表及其切片和迭代操作
Mar 13 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
Django实现组合搜索的方法示例
Jan 23 Python
python中format()函数的简单使用教程
Mar 14 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
Python如何读取、写入JSON数据
Jul 28 Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 07 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
session 的生命周期是多长
2006/10/09 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
vue双向绑定及观察者模式详解
2019/03/19 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
python字符类型的一些方法小结
2016/05/16 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
python实现简易数码时钟
2021/02/19 Python
python tkinter实现屏保程序
2019/07/30 Python
python随机模块random使用方法详解
2020/02/14 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
问卷调查计划书
2014/01/10 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
公司周年庆典标语
2014/10/07 职场文书
社区工作者个人总结
2015/02/28 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python