playwright学习笔记

目录

一、序章

Playwright B站视频学习地址

学习目的:

  1. 从0学python
  2. 从0学playwright
  3. UI自动化全流程实战项目
  4. 在工作中用起来

二、环境安装

1.环境要求:

· Python 3.8 或更高版本。

· Windows 10+、Windows Server 2016+ 或适用于 Linux 的 Windows 子系统 (WSL)。

· macOS 13 Ventura 或 macOS 14 Sonoma。

· Debian 11、Debian 12、Ubuntu 20.04 或 Ubuntu 22.04、Ubuntu 24.04,在 x86-64 和 arm64 架构上。

2.Pycharm安装:

Windows:

https://www.jetbrains.com.cn

安装版本:Window有两种内核芯片:AMD64和ARM64,根据自己电脑处理器架构类型选择对应的版本,大部分选择".exe(Windows)"即可

内核芯片查询方法:

快捷键Win+R打开cmd命令窗口,输入:echo %PROCESSOR_ARCHITECTURE%

3.playwright安装

pycharm新建一个项目,找到左下角终端(Terminal)打开

python 复制代码
# 查看已经安装的安装包
pip list
# 如果提示要升级,升级pip
pip install --upgrade pip
# 安装pytest和playwright包
pip install pytest-playwright
# 安装playwrith的三个浏览器内核:chromimn,firefox,webkit(mac)
playwright install

三、第一条自动化编写

python 复制代码
# 导入包  
from playwright.sync_api import Page  
  
# 定义函数的方法,define的缩写  
# pytest测试框架会将test_开头的识别为测试用例  
# pytest fixture夹具创建一个page?  
# page入参 Page类,代表入参是一个Page类,就可以使用Page类的方法  
def test_goto_playwright(page:Page):  
    # goto访问一个URL,  
    page.goto(url='https://github.com/microsoft/playwright')  
    # 等待5秒(毫秒单位5_000便于阅读),因playwright有些是异步协程不建议使用sleep方法  
    page.wait_for_timeout(5_000)

1.等待机制

Playwright 不建议用 sleep () 的原因:

  1. 测试不稳定,sleep () 是 "盲等",无法适配环境差异
  2. 测试效率极低:大量无意义等待,拖慢整体执行速度
  3. 违背Playwright 的核心优势之一:自动等待(Auto-waiting)

Playwright等待方案:

  1. 自动等待 :Playwright 的所有操作 API(click/fill/select等)都内置自动等待,无需写任何等待代码,默认等待 30 秒(可配置),元素满足条件就立即执行:
  2. 显式条件等待(适配特殊场景)
    若需要等待 "页面加载完成""元素出现 / 消失""网络请求完成" 等自定义条件,用wait_for_*系列 API,而非sleep()
场景 推荐API 作用
等待元素可见 page.wait_for_selector("#kw", state="visible") 等待元素出现在DOM且可见
等待页面加载完成 page.wait_for_load_state("networkidle") 等待网络请求完成(无新请求)
等待弹窗消失 page.wait_for_selector("#modal", state="hidden") 等待元素隐藏/消失
等待自定义条件 page.wait_for_function("() => window.innerWidth > 800") 等待JS表达式返回True
  1. Playwright 也提供了替代time.sleep()的 API------page.wait_for_timeout(n),但官方明确说明 "仅用于调试时临时暂停,而非测试等待,禁止在生产测试中使用"

2.有头运行测试方法

1.终端(Terminal)使用命令

python 复制代码
# test_baidu.py替换成要执行的测试文件
pytest --headed test_baidu.py

2.在pycharm配置运行参数

相关推荐
302wanger32 分钟前
【阅读笔记】当AI拿走一切之后
笔记
疯狂打码的少年2 小时前
【数据结构】串(字符串):基本概念与存储
数据结构·笔记
for_ever_love__2 小时前
python基础语法学习: 数据容器
windows·python·学习
云空3 小时前
《电子专业完整学习路线图(分两套:本科四年版 / 零基础自学速成版)》
科技·学习·学习方法·高考
min(a,b)3 小时前
学习第16天:LangGraph 与 Agent 工作流编排
学习
woshihuanglaoshi3 小时前
鸿蒙技术进阶全景高级成长体系:从初中级到架构师的技能树/学习路径/项目实战/认证体系系统性方法论
学习·华为·harmonyos
AI即插即用3 小时前
即插即用系列 | IEEE TMI PLG-HN:原型学习引导的 CNN-Transformer 混合网络,攻克乳腺肿瘤分割难题
人工智能·深度学习·神经网络·学习·目标检测·cnn·transformer
Hotchip_MEMS4 小时前
TWS耳机微米级较量:超薄LGA封装如何助力MEMS麦克风小型化?
人工智能·笔记·物联网·电脑
Ztt6666666664 小时前
金泉方壶四面端正,月白釉却把棱角放柔了
经验分享·笔记·其他·百度·微信公众平台
for_ever_love__4 小时前
python基础语法学习: 变量, 输入输出, 运算符
网络·python·学习