WebUI自动化框架-playwright
(持续更新)
一.环境准备
安装playwright:playwright是基于python3.7开发的第三方包,所以需要使用的python版本是3.7及其以上的 pip install playwright
playwright默认是无头模式打开浏览器,可以将参数headless设置为False,就可以打开浏览器窗口了
安装需要的浏览器:chromium、firefox、webkit playwright install
,这一个命令可以一次安装三个浏览器
playwright操作浏览器使用两种方式:sync_playwright(同步)和async_palywright(异步)
asyncio是一个异步库,使用这个库操作,需要在函数申明时加上async关键字,并且在每行代码的前面加上await 关键字
函数调用时需要使用asyncio库里面的.run()函数来执行函数
同步操作:
`from playwright.sync_api import sync_playwright`
`# 使用with方式启动playwright`
`with sync_playwright() as p:`
`# 非无头模式启动chromium浏览器`
`browser = p.chromium.launch(headless=False)`
`# 在浏览器打开一个新页面`
`page = browser.new_page()`
`# 使用页面打开网址`
`page.goto("http://www.baidu.com")`
`# 打印网页标题`
`print(page.title())`
`browser.close()`
异步操作:
`import asyncio`
`from playwright.async_api import async_playwright`
`async def main():`
`async with async_playwright() as p:`
`browser = await p.chromium.launch(headless=False)`
`page = await browser.new_page()`
`await page.goto("http://www.baidu.com")`
`print(await page.title())`
`await browser.close()`
`asyncio.run(main())`
二.playwright录制生成脚本
使用命令行playwright codegen 目标网址
,然后在浏览器操作时,playwright就会自动生成代码
可以将生成的函数直接copy到pycharm工具
断点调试功能: page.pause()
playwright录制脚本保留身份认证的状态:
playwright在录制脚本时,加上--save-storage可以保存登录之后的cookie值
1.playwright codegen --save-storage=auth.json
可以将登录后的cookie保存到auth.json中
2.在下次登录时,可以直接引用本地的cookie,不需要再进行登录
使用playwright open --load-stroage=auth.json 目标网址
三.playwright元素定位方法
1.按照HTML标签属性定位
1.根据lable标签定位 page.get_by_lable()
2.根据占位符定位 page.get_by_placeholder()
3.根据文本信息定位 page.get_by_text("文本",exact=True) 默认是模式匹配文本信息,exact=True表示精确匹配
4.根据图片定位,进行跳转 page.get_by_alt_text("图片")
5.根据title定位 page.get_by_title("标题")
2.按照CSS/xpath定位
1.按照xpath定位 page.locator("css表达式")
2.按照css定位 page.locator("css="css表达式")
3.按照元素内定位
针对于多级标签,可以先定位到上一级,再用上一级返回的元素对象定位后代元素
四.playwright网页操作
1.复选框选择/多下拉列表
可以先使用上面的元素定位方法将复选框定位返回元素对象element,使用`element.check()`进行选择操作
校验元素是否被选择: element.is_checked(),如果被选择,返回True,反之返回False
复选框进行取消操作: element.uncheck()
2.单选框/单下拉列表
先定位元素返回element对象,使用element.check()选择
校验元素是否被选择: element.is_checked(),如果被选择,返回True,反之返回False
3.点击、右击、双击
先定位返回element对象
点击:element.click()
右键: element.click(button="right")
双击:element.dblclick()
4.输入文字
element.fill("输入的内容") # 会清空掉之前已经输入的信息
element.type("追加输入的内容")
5.键位操作
全选 :element.press("Ctrl+A")
剪切: element.press("Ctrl+X")
粘贴: element.press("Ctrl+V")
6.文件上传
element.set_input_files("上传文件的路径") 如果是上传多个文件,可以上传列表格式 element.set_input_files(["文件1路径","文件2路径"])
WebUI自动化框架-playwright的更多相关文章
- 学会这个,助你升值加薪自动化框架之python+selenium+pytest
1.概述 selenium: 基于JavaScript代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最接近用户真实场景,实现对web自动测试. Selenium,是目前的最火爆企业最主流的w ...
- 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample
到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...
- 基于Java+Selenium的WebUI自动化测试框架(十)-----读取Excel文件(JXL)
之前,我们使用了读取XML文件的方式来实现页面元素的读取,并做成了基础页面类.下面,我们来进行一些扩展,通过Excel来读取页面元素. Excel的使用,大多数人应该都不陌生.那么Java读取Exce ...
- Appium移动自动化框架
引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...
- python自动化测试(3)- 自动化框架及工具
python自动化测试(3) 自动化框架及工具 1 概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到 ...
- Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置
此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...
- Appnium移动自动化框架初探
作者:cryanimal QQ:164166060 本文简要介绍了appnium自动化框架的架构.加载流程.支持语言.相关配置,以及元素定位工具等. 官方网站: http://appium.io Ap ...
- Web自动化框架LazyUI使用手册(2)--先跑起来再说(第一个测试用例-百度搜索)
作者:cryanimal QQ:164166060 上篇文章中,简要介绍了LazyUI框架,本文便来演示,如何从无到有快速搭建基于lazyUI的工程,并成功运行第一个测试用例. 本文以百度搜索为例,选 ...
- Web自动化框架搭建——前言
1.web测试功能特性 a.功能逻辑测试(功能测试),这一块所有系统都是一致的,比如数据的添加.删除.修改:功能测试案例设计感兴趣和有时间的话可以另外专题探讨: b.浏览器兼容性测试,更重要的是体验这 ...
随机推荐
- LOTO示波器统计曲线和故障分析pass/fail测试
LOTO示波器统计曲线和故障分析pass/fail测试 虚拟示波器可以应用在工业自动化检测中,除了常规的检测波形和测量值参数以外,由多个行业客户定制和验证的统计曲线和故障分析(pass/fail)功能 ...
- uni-app 小程序 前置摄像头
在小程序拍照的话,uni.chooseImage()可以直接调取摄像头拍照,而如果要调用前置摄像头,这个api就没有提供了. 在查找官方文档发现,可以通过camera有提供这么一个组件,页面内嵌的区域 ...
- pikachu靶场 越权(水平越权+垂直越权)
水平越权 A用户和B用户属于同一级别用户,但各自不能操作对方个人信息.A用户如果越权操作B用户个人信息的情况称为水行越权操作 三个用户 lucy/lili/kobe 密码都为123456 随便登录其 ...
- vue grid layout 设定某组件为最低位,其它子item无法拖拽超过
逻辑: 设定某项X为底部 逻辑: for 循环获取最低位的item Y的信息:i 和 y 如果i != X.i initY = X.y 则调整X.y ...
- 几步轻松定制私人AI助手
这两年大模型的发展持续火热,以至于许多资本和学者认为AI出现了泡沫,根本原因还是因为大模型目前还没有出现能够结合行业切实落地的应用. 我才不关注泡沫不泡沫呢,我只关注大模型能给我带来哪些帮助即可.大模 ...
- C# SAPX调用用户控件方法
//获得用户控件 Type pageType = ucMoneyList1.GetType(); //用户控件方法名 MethodI ...
- CA-TCC: 半监督时间序列分类的自监督对比表征学习《Self-supervised Contrastive Representation Learning for Semi-supervised Time-Series Classification》(时间序列、时序表征、时间和上下文对比、对比学习、自监督学习、半监督学习、TS-TCC的扩展版)
现在是2023年11月27日,10:48,今天把这篇论文看了. 论文:Self-supervised Contrastive Representation Learning for Semi-supe ...
- CCF CSP-S 2024 提高组初赛解析
本解析不提供阅读程序与完善程序题目的代码,如有需要请通过 luogu.com.cn 相关链接 下载 如有谬误烦请指正 答案 AACBB BDABD ACBCD ✓××BC ✓✓✓BCC ✓×✓CAC ...
- 《Spring Data JPA从入门到精通》内容简介、前言
内容简介 本书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用.有语法,有实践,有原理剖析. 本书分为12章,内容包括整体认识JPA.JPA基础查询 ...
- 内核模块踩内存问题定位利器- hardware breakpoint
内核由于共享内存地址空间,如果没有合适的工具,很多踩内存的问题即使复现,也无法快速定位: 在新的内核版本中引入了一个新工具hardware breakpoint,其能够监视对指定的地址的特定类型(读/ ...