惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - 小海海宁宁

从0到1:使用Schemathesis搭建API自动化测试框架实战 OpenAPI规范及自动化用例生成 playwright & selenium对Shadow DOM的处理 自动化平台质量体系建设(草稿) 【模板】邮件提测模板 研发测试质量规范(草稿) 自动化框架 - Q&A 自动化框架 - 核心模块使用指南 - Kafka 自动化框架 - 核心模块使用指南 - Kibana 自动化框架 - 核心模块使用指南 - API 自动化框架 - 核心功能使用指南 - 动态值生成 自动化框架 - 核心功能使用指南 - 数据处理模块 自动化框架 - 核心功能使用指南 - 数据校验模块 自动化框架 - 核心功能使用指南 - 上下文值传递 自动化框架 - 核心功能使用指南 - 用例过滤Tag使用 自动化框架 - 核心功能使用指南 - Excel测试用例编写 自动化框架 - 核心功能使用指南 - 配置文件使用指南 自动化框架使用说明 - 快速开始 Kibana如何添加可视化看板
自动化框架 - 核心模块使用指南 - Playwright
小海海宁宁 · 2026-03-09 · via 博客园 - 小海海宁宁
  1. 模块概述

PlaywrightModule是一个基于 Playwright 的自动化测试模块,用于实现网页的自动化测试。该模块提供了多种功能,包括浏览器的启动与配置、页面导航、元素操作、日志监听等。以下是该模块的主要功能和方法说明:

浏览器启动与配置

页面导航

元素操作

日志监听

WebSocket 监听

  1. 环境准备

运行命令行

#安装playwright
python.exe -m pip install playwright 
#安装浏览器,时间久
python.exe -m playwright install

装完之后在C:\Users\<user>\AppData\Local\ms-playwright路径下就能看到playwright自带的浏览器的东西

  1. 初始化模块

为了初始化一个 Playwright 模块,我们可以创建一个类似的配置字典,该字典包含浏览器类型、是否启动无头模式、超时时间等信息。以下是一个示例配置字典,用于初始化 Playwright 模块

playwright_module:

class_path: "src.modules.ui.playwright_module.PlaywrightModule"

browser_type: "chromium" # 浏览器类型,可选值:chromium, firefox, webkit

headless: True # 是否启动无头模式

viewport: {"width": 1920, "height": 1080} # 视口大小

timeout: 30000 # 超时时间(毫秒)

ignore_https_errors: True # 是否忽略 HTTPS 错误

permissions: ["microphone", "camera"] # 权限列表

auto_accept_dialogs: True # 是否自动接受权限对话框

websocket_listener: True # 是否启动 WebSocket 监听

console_listener: True # 是否启动日志监听

trace_enabled: True # 是否启用追踪功能

auto_close_browser: True # 是否自动关闭浏览器

初始化后,你可以使用 playwright_module 对象来执行各种操作,例如启动浏览器、导航到指定 URL、处理权限对话框等

如:

# 启动浏览器
playwright_module.launch_browser()

# 导航到指定 URL
playwright_module.navigate(url="https://example.com")

# 关闭浏览器
playwright_module.close_browser()
  1. 功能说明

  1. 浏览器启动与配置

launch_browser(**kwargs)

描述: 统一的浏览器启动方法,支持多种配置选项。

参数:

websocket_listener (bool, 可选): 是否启动 WebSocket 监听,默认为 True。

permissions (list, 可选): 权限列表,例如 ["microphone", "camera"]。

auto_accept_dialogs (bool, 可选): 是否自动接受权限对话框,默认为 True。

headless (bool, 可选): 是否无头模式,默认为 False。

viewport (dict, 可选): 视口大小,例如 {"width": 1920, "height": 1080}。

timeout (int, 可选): 超时时间(毫秒),默认为 30000。

network_listener (bool, 可选): 是否启动网络监听,默认为 True。

console_listener (bool, 可选): 是否启动日志监听,默认为 True。

示例:

Dict: 启动结果,包含成功标志和相关配置信息

  1. 导航到指定 URL

navigate_to_url(url: str, switch: bool = False, **kwargs)

描述: 导航到指定的 URL,并可选择切换到新标签页。

参数:

url (str): 目标 URL。

switch (bool, 可选): 是否切换到新标签页,默认为 False。

示例:

navigate_result = module.navigate_to_url("https://example.com", switch=True)

  1. 设置下拉框值

set_select_value(selector: str, value: str, trigger_change: bool = True, **kwargs)

描述: 使用 JavaScript 设置下拉框的值。

参数:

selector (str): 选择器字符串。

value (str): 要设置的值。

trigger_change (bool, 可选): 是否触发 change 事件,默认为 True。

示例:

set_select_result = module.set_select_value("#my-select", "option2")

  1. 执行JavaScript 脚本

execute_script(script: str, selector: str = '', selector_type: str = '', arguments: list = [], saveAsVariable: str = '', **kwargs)

描述: 执行 JavaScript 脚本,支持在特定元素上执行。

参数:

script (str): 要执行的 JavaScript 脚本。

selector (str, 可选): 在特定元素上执行的 CSS 或 XPath 选择器。

selector_type (str, 可选): 选择器类型,css 或 xpath,不传则自动检测。

arguments (list, 可选): 传递给脚本的参数。

saveAsVariable (str, 可选): 将结果保存到变量。

示例:

script_result = module.execute_script("return document.title", selector="#my-element", arguments=["arg1", "arg2"])

  1. 切换到最后一个标签页

switch_to_last_tab(saveAsVariable: str = 'last_tab_info', **kwargs)

描述: 切换到最后一个标签页。

参数:

saveAsVariable (str, 可选): 保存最后一个标签页信息到变量,默认为 last_tab_info。

示例:

last_tab_result = module.switch_to_last_tab(saveAsVariable="last_tab_info")