五分钟学会Playwright录制脚本的方法以及语法难点

news/2024/10/23 23:27:51/


 这篇文章系统地介绍了上手Playwright的方法,但是录制脚本部分讲解不够详尽,今天我在这里重点的介绍一下Playwright 录制脚本的方法来丰满我的Playwright系列技术文章。

Playwright可以使用codegen来录制脚本,使用方式非常简单,只要大家玩过ui自动化测试的录制相关工具五分钟就可以学会上手!

playwright Inspector进行录制

playwright Inspector进行页面录制非常简单,使用如下命令即可

playwright codegen https://www.baidu.com/

会启动chromium的浏览器页面,我们鼠标触碰的地方会被标记为红色,并显示其元素属性,如下图所示:

 

操作的过程会通过playwright Inspector记录,如下图所示:

 

录制过程直接生成py脚本

使用下面的命令会把我们在浏览器中的操作脚本化并保存到baidu_test.py中,

playwright codegen --target python -o baidu_test.py -b chromium https://www.baidu.com/

录制实例代码分析:

from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:browser = playwright.chromium.launch(headless=False)context = browser.new_context()page = context.new_page()page.goto("https://www.baidu.com/")page.locator("#kw").click()page.locator("#kw").fill("test")page.get_by_role("button", name="百度一下").click()page.close()context.close()browser.close()
with sync_playwright() as playwright:run(playwright)

相信有过自动化测试基础的同学都很容易理解关于page.goto()、page.locator("#kw").click(),page.locator("#kw").fill("test") 这些api的定义,就是最基础的操作:访问网页,点击元素,和输入数据,

上面的脚步中有两处python 语法需要说明一下

(playwright: Playwright) -> None

该用法叫做函数注释 Function Annotations,大家可以参考文章:

https://blog.csdn.net/liwenxiang629/article/details/112466737

with sync_playwright() as playwright:

with …as用于异常处理,可以使代码更简洁、可读性更强,大家可以参考文章

https://blog.csdn.net/liwenxiang629/article/details/130620609


http://www.ppmy.cn/news/74153.html

相关文章

torch、torch.nn、 torch.optim、torchvision、 torchvision.transforms 功能简介

1. torch 库 import torch 命令将 PyTorch 框架导入到 Python 程序中,这样我们就可以使用 PyTorch 提供的各种功能了。PyTorch 是一个用于科学计算的机器学习库,具有以下重要功能: 张量(Tensor)操作:PyTorch 引入了张量作为其核心…

Istio 微服务架构的演变

微服务架构的演变 单体模式下面一个应用通常会有一个app server,这个app server里面会有不同的子模块,每一个模块都写在同一个应用包里面,模块和模块之间的边界有些时候设计的不是特别清晰,特别早期代码混合在一起那么意味着互相的…

2023-05-19 题目

1、java的三大特性,亦或者四大特性 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继 承信息的类被称为子类(派生类)。继承让变化中的软件系统…

【微信小程序】富文本rich-text的图片预览效果的几种方法

前言 使用原生小程序开发,实现在富文本rich-text中的图片预览效果的几种方法对比。 update:因为方案3wxparser后续没有再维护,解析微信公众号文章时会出现排版错误的问题。作为插件也很难二次开发。换成mp-html了 1.正则wx.previewImage(有…

【面试题】如何实现vue虚拟列表,纵享丝滑

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 最近在工作中遇到了一个列表的需求,因为做的是C端,所以对性能…

无效数据大揭秘——你不知道的那些坑!

进行数据管理时,无效数据可能会对生产力和决策质量造成严重的影响。如何发现和处理无效数据变得愈发重要。一起来唠唠各位大佬是如何处理的? ⭐ 什么是无效数据?⭐ 如何处理无效数据?⭐ 如何减少无效数据?⭐ 无效数据管…

Windows 环境 Rust postgress dll报错

本文将主要阐述三个bug,具体如下: 报错1: LNK1181: cannot open input file “libpq.lib” 命令行中输入setx PQ_LIB_DIR "C:\Program Files\PostgreSQL\14\lib" 重新 cargo build 问题解决 报错2:Exit code: 0xc000…

Executor 框架实现线程池,以及利用多线程读取文件

Java 中实现多线程的方式有以下几种: 1.使用 Thread 类实现多线程。 创建线程的第一种方式是继承 Java 的 Thread 并重写 run() 方法。 public class MyThread extends Thread {@Overridepublic void run() {// 线程执行的逻辑} }MyThread myThread1 = new MyThread(); myT…