playwright 进阶用法
设置浏览器窗口最大化
# --start-maximized 把操作系统上的浏览器软件窗口,放大到全屏。
browser = p.chromium.launch(
headless=False,
channel="chrome",
args=["--start-maximized", # 窗口最大化 ]
)
# no_viewport=True 放弃强制给网页页面设置固定渲染大小(默认 1280×720)。
context = browser.new_context(no_viewport=True )
开启录屏功能
# 录屏文件保存在你指定的文件夹,格式为 `.webm` (playwright无法直接生成mp4格式)
context = browser.new_context(
no_viewport=True
record_video_dir="./videos/"
)
# webm 转 mp4
ffmpeg -i video.webm output.mp4
page.locator(“xxx”)介绍
page.locator("xxx")里面填的就是 CSS 选择器,.s‑btn、div#head都属于 CSS 选择器。
符号规则
.类名→ 点.代表class 属性#id值→ 井号#代表id 属性
1.类名选择器
定位方式:
page.locator(".s-btn")
对应html:
<button class="s-btn">提交</button>
<div class="s-btn"></div>
2.id 选择器
page.locator("div#head")
含义:
- `div`:标签必须是 div
- `#head`:id="head"
对应html:
<div id="head">头部导航</div>
定位下拉选项
# html内容
<select id="detail_layout_top_select">
<option value="007014">嘉合磐泰短债A</option>
<option value="014846">博时恒乐债券A</option>
<option value="372010">摩根强化回报债券A</option>
<option value="012734">易方达中证人工智能主题ETF联接C</option>
<option value="000834">大成纳斯达克100ETF联接(QDII)A</option>
</select>
# 定位方式
eg: 要定位到 "嘉合磐泰短债A", 可以使用 page.locator(id定位).select_option(value值)
page.locator("#detail_layout_top_select").select_option("007014")
等待操作
# `wait_until="networkidle"`:**等待网络空闲**
含义:页面加载完成后,**500ms 内没有新的网络请求**,代码才往下执行
用法:
page.goto("https://www.baidu.com/", wait_until="networkidle")
# `wait_for(state="visible")` 智能等待元素
含义:**等待该元素变为可见**,才往下执行
用法:
page.get_by_placeholder ("请输入用户名").wait_for (state="visible", timeout=10000)
keyboard.type 模拟键盘打字
page.get_by_placeholder ("请输入用户名").click ()
page.keyboard.type("hahaha", delay=80)
含义:模拟真人敲击键盘,一个字符一个字符敲进去
- `delay=80`:每输入一个字符,停顿 80 毫秒
- 会完整触发 `keydown → keypress → keyup → input` 全套前端事件
### 和 `.fill("hahaha")` 的核心区别
1. `page.locator.fill("hahaha")`
Playwright 直接赋值输入框 value,**极速一次性填入**,属于脚本注入;
很多前端页面监听 `keydown / keyup / input`事件,极速赋值不会触发校验、下拉联想、实时校验。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:playwright 进阶用法
本文作者:伟生
发布时间:2026-08-22, 21:13:00
最后更新:2026-08-22, 21:16:53
原始链接:http://yoursite.com/2026/08/22/ceshi_19_playwright_03/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。