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实现将汉字转换成汉语拼音的库
May 05 Python
Python中关于使用模块的基础知识
May 24 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
Python实现的矩阵类实例
Aug 22 Python
wxPython实现整点报时
Nov 18 Python
Python进程池Pool应用实例分析
Nov 27 Python
Python双链表原理与实现方法详解
Feb 22 Python
关于Python解包知识点总结
May 05 Python
Python3 webservice接口测试代码详解
Jun 23 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
python 如何引入协程和原理分析
Nov 30 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
VOLVO车载收音机
2021/03/02 无线电
php获取当前页面完整URL地址
2015/12/30 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
浅谈js中的this问题
2017/08/31 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
python中abs&map&reduce简介
2018/02/20 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
小学生元旦广播稿
2014/02/21 职场文书
银行委托书范本
2014/04/04 职场文书
安全生产宣传标语
2014/06/06 职场文书
温馨提示标语
2014/06/26 职场文书
个人求职自荐信范文
2015/03/06 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
python实现简易名片管理系统
2021/04/11 Python
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang