playwright 进阶用法

  1. 设置浏览器窗口最大化
  2. 开启录屏功能
  3. page.locator(“xxx”)介绍
    1. 符号规则
    2. 1.类名选择器
    3. 2.id 选择器
  4. 定位下拉选项
  5. 等待操作
  6. keyboard.type 模拟键盘打字

设置浏览器窗口最大化

# --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‑btndiv#head 都属于 CSS 选择器。

符号规则

  1. .类名 → 点 . 代表class 属性
  2. #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" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏