python+playwright微软自动化工具的使用
作者:烟-锁-池-塘-柳 发布时间:2022-10-18 08:52:29
标签:python,playwright,微软自动化工具
它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行
playwright-python 提供了同步、异步的 API,可以结合 Pytest 测试框架使用,并且支持浏览器端的自动化脚本录制
项目地址:https://github.com/microsoft/playwright-python
安装playwright-python,执行命令:pip install playwright
安装成功之后,执行命令:python -m playwright install,自动下载 Chromeium、Firefox、Safari(WebKit)浏览器驱动到本地
同步
同步的关键字为: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 使用上,显得更简洁且强大
来源:https://blog.csdn.net/jiaweide123/article/details/110799492
0
投稿
猜你喜欢
- 本文实例讲述了Python验证码识别的方法。分享给大家供大家参考。具体实现方法如下:#encoding=utf-8import Image,
- MD5(Message-Digest Algorithm 5) 模块用于计算信息密文(信息摘要),得出一个128位的密文。sha模块跟md5
- CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持。本文介绍了 5 个 CSS3
- 正则表达式的使用想要学习 Python 爬虫 , 首先需要了解一下正则表达式的使用,下面我们就来看看如何使用。. 的使用这个时候的点就相当于
- Json To Dictimport jsonjsonData = '{"a":1,"b":
- header() 函数向客户端发送原始的 HTTP 报头。<?php//200 正常状态header('HTTP/1.1 20
- 安装环境:python版本2.7.5 ,win7系统安装Djangohttps://www.djangoproject.com/downlo
- Python 操作 Excel本篇博客介绍一种 Python 操作 Excel 的办法,核心用到 xlrd与xlwt模块。xlrd 
- 公司网站后台使用的eWebEditor来添加发布新闻之类的,但把电脑的IE升级到8之后一直没办法添加附件之类的,症状就是在点击编辑器按钮时就
- 为啥要写这个脚本五一前的准备下班的时候,看到同事为了做数据库的某个表的数据字典,在做一个复杂的人工操作,就是一个字段一个字段的纯手撸,那速度
- 多表操作 在一个数据库中,可能存在多个表,这些表都是相互关联的。我
- 本文实例讲述了Python用于学习重要算法的模块pygorithm。分享给大家供大家参考,具体如下:这是一个能够随时学习重要算法的Pytho
- 如何向客户端推送“出错信息”?下面是推送代码:服务器端:on error resume nextconn=se
- 1.建立Recordset对象 代码如下:Dim objMyRst Set objMyRst=Server.C
- 本文所示代码实现python编程方向键控制图片上下左右,我们首先看下演示结果。演示:实例代码:bif="1.jpg" m
- 本文实例讲述了Python简单定义与使用字典的方法。分享给大家供大家参考,具体如下:#coding=utf8print ''
- SQL语句优化的原则:◆1、使用索引来更快地遍历表缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存
- Linux终端里面可谓是奇妙无限,很多优秀的软件都诞生在终端里面。相较之下,Windows本身的理念和Linux就不一致,所以,你懂得。 下
- 写在之前我们都知道 Python 中内置了许多标准的数据结构,比如列表,元组,字典等。与此同时标准库还提供了一些额外的数据结构,我们可以基于
- SQLSRV驱动程序允许您创建一个结果集,其中包含可以根据游标类型以任何顺序访问的行。本主题将讨论客户端(缓冲)和服务器端(非缓冲)游标及其