Playwright 学习笔记(一)
Playwright 简介Playwright 是微软开发的 Web 应用自动化测试框架。和 Selenium 相比Playwright 除了支持 Web 自动化外还内置了自动化测试功能框架而且自动化原理也有些差异。安装 Playwright 客户端库pip install playwright安装浏览器执行playwright install会自动下载 Chromium、Firefox、WebKit 三个浏览器。如果只需要一个浏览器可指定安装playwright install chromium注意Playwright 也可以驱动已经安装好的品牌浏览器Chrome、Edge、Firefox 等后文会讲到。品牌浏览器往往会自动更新。如果使用 Selenium 自动化就需要不断下载新的驱动。而 Playwright 使用自编译浏览器不会自动更新避免驱动和浏览器版本不匹配的问题。简单示例from playwright.sync_api import sync_playwright # 启动 playwright driver 进程 p sync_playwright().start() # 启动浏览器返回 Browser 类型对象 browser p.chromium.launch(headlessFalse) # 创建新页面返回 Page 类型对象 page browser.new_page() page.goto(https://www.byhy.net/cdn2/files/selenium/stock1.html) print(page.title()) # 打印网页标题 # 输入通讯点击查询 page.locator(#kw).fill(通讯) page.locator(#go).click() # 打印所有搜索内容 lcs page.locator(.result-item).all() for lc in lcs: print(lc.inner_text()) # 关闭浏览器 browser.close() # 关闭 playwright driver 进程 p.stop()也可以切换其他浏览器# 启动 firefox browser p.firefox.launch(headlessFalse) # 启动 webkit browser p.webkit.launch(headlessFalse)或者通过executable_path指定本机已安装的浏览器browser p.chromium.launch( headlessFalse, executable_pathc:\\Program Files\\Google\\Chrome\\Application\\chrome.exe )使用with as会话管理可以让代码更简洁无需手动调用start()和stop()from playwright.sync_api import sync_playwright with sync_playwright() as p: browser p.chromium.launch(headlessFalse) page browser.new_page() page.goto(https://www.byhy.net/cdn2/files/selenium/stock1.html) print(page.title()) page.locator(#kw).fill(通讯\n) page.locator(#go).click() lcs page.locator(.result-item).all() for lc in lcs: print(lc.inner_text()) browser.close()界面等待上面的代码并不能打印出股票搜索结果因为点击查询后立即检查此时页面还没来得及呈现结果。需要等待一段时间但在 Playwright 中不能使用 time.sleep否则会破坏异步事件处理逻辑。应使用wait_for_timeout方法单位毫秒page.wait_for_timeout(1000)自动化代码助手codegenPlaywright 内置了代码助手功能可以记录对页面的输入并生成自动化代码playwright codegen这个工具只能作为助手使用主要是记录对页面的操作对于像print(page.title())或遍历搜索结果这样的「获取页面信息」类代码还是需要自己手写。但是这个还是非常好用的。跟踪功能Tracing启用跟踪功能后可以在执行完自动化后回看执行过程中的每一个细节。这对测试失败时的调试非常有用。from playwright.sync_api import sync_playwright p sync_playwright().start() browser p.chromium.launch(headlessFalse) # 创建 BrowserContext 对象 context browser.new_context() # 启动跟踪功能 context.tracing.start(snapshotsTrue, sourcesTrue, screenshotsTrue) page context.new_page() page.goto(https://www.byhy.net/cdn2/files/selenium/stock1.html) # 搜索名称中包含 通讯 的股票 page.locator(#kw).fill(通讯) page.locator(#go).click() page.wait_for_timeout(1000) lcs page.locator(.result-item).all() for lc in lcs: print(lc.inner_text()) # 搜索名称中包含 软件 的股票 page.locator(#kw).fill(软件) page.locator(#go).click() page.wait_for_timeout(1000) lcs page.locator(.result-item).all() for lc in lcs: print(lc.inner_text()) # 结束跟踪 context.tracing.stop(pathtrace.zip) browser.close() p.stop()查看trace.zip的两种方法访问 上传跟踪文件执行playwright show-trace trace.zip

相关新闻

模拟开关超全入门指南:分类、用途、选型参数(附 SPDT/2X/4X 结构详解)

模拟开关超全入门指南:分类、用途、选型参数(附 SPDT/2X/4X 结构详解)

做硬件、嵌入式开发时,经常会碰到模拟开关选型,面对一大堆名词:SPDT/DPDT/2XSPDT/USB/MIPI/I2C开关很容易混淆。 本文整合开关结构定义、全品类区分、核心选型参数,从基础概念到实际选型一步讲透,适合硬件工程师、FAE、…

2026/7/27 23:31:31 阅读更多 →
豆包可以生成excel吗?AI导出鸭解锁AI表格导出新路径

豆包可以生成excel吗?AI导出鸭解锁AI表格导出新路径

豆包可以生成excel吗?AI导出鸭给出高效答案 豆包可以生成excel吗?AI导出鸭解锁AI表格导出新路径AI导出鸭电脑版:破解豆包Excel生成难题的硬核方案 在AI办公深度渗透日常工作的当下,“豆包可以生成excel吗”成为高频疑问——豆包等…

2026/7/27 23:31:31 阅读更多 →
AI Agent闭环系统架构设计与工程实践

AI Agent闭环系统架构设计与工程实践

1. AI Agent执行链路闭环架构解析 在人工智能领域,构建一个真正高效、可靠的AI Agent系统需要精心设计的执行链路闭环。这个闭环系统从动作生成开始,经过执行环节,最终通过结果验证形成反馈,构成一个完整的循环。下面我将从架构师…

2026/7/27 23:31:31 阅读更多 →

最新新闻

高性能手机号码归属地查询解决方案:基于Go语言的高效实现

高性能手机号码归属地查询解决方案:基于Go语言的高效实现

高性能手机号码归属地查询解决方案:基于Go语言的高效实现 【免费下载链接】phonedata 手机号码归属地信息库、手机号归属地查询 phone.dat 最后更新:2023年02月 项目地址: https://gitcode.com/gh_mirrors/ph/phonedata 在当今数字化时代&#x…

2026/7/27 23:39:36 阅读更多 →
React Native跨平台鸿蒙开发基于HarmonyOS API 24实战系列:input数据键盘实现与最大文字长度限制

React Native跨平台鸿蒙开发基于HarmonyOS API 24实战系列:input数据键盘实现与最大文字长度限制

本文是基于HarmonyOS API 24的进行的React Native跨平台技术实战项目React Native 跨端鸿蒙开发,行业简称 RNOH(React Native OpenHarmony),是社区 华为共建的适配层方案:把 Meta 的 React Native 框架完整移植到鸿蒙…

2026/7/27 23:39:36 阅读更多 →
联想投影仪投屏总失败?有线、Eshare、Win10 无线投屏三种方法全覆盖

联想投影仪投屏总失败?有线、Eshare、Win10 无线投屏三种方法全覆盖

不管是居家追剧、学生上网课,还是职场开会做 PPT 演示,用联想投影仪投屏电脑都是高频需求,但很多人实操时频繁踩坑:有线插上 HDMI 线画面无信号,找不到切换信源的入口;无线投屏时电脑和设备连同一 WiFi 依旧…

2026/7/27 23:39:36 阅读更多 →
React Native跨平台鸿蒙开发基于HarmonyOS API 24实战系列:MutilBundle加载方案实现路由跳转功能之鸿蒙原生应用中集成多个 React Native 模块

React Native跨平台鸿蒙开发基于HarmonyOS API 24实战系列:MutilBundle加载方案实现路由跳转功能之鸿蒙原生应用中集成多个 React Native 模块

本文是基于HarmonyOS API 24的进行的React Native跨平台技术实战项目React Native 跨端鸿蒙开发,行业简称 RNOH(React Native OpenHarmony),是社区 华为共建的适配层方案:把 Meta 的 React Native 框架完整移植到鸿蒙…

2026/7/27 23:39:36 阅读更多 →
联辉科 LTK5209 2×7.9W双声道立体声F类音频功率放大器 ESOP-10 技术解析

联辉科 LTK5209 2×7.9W双声道立体声F类音频功率放大器 ESOP-10 技术解析

在蓝牙音箱、智能音箱、导航仪、便携游戏机、拉杆音箱、DVD、扩音器等各类音频产品中,需要一款既能提供足够输出功率、又能灵活切换工作模式以适应不同应用场景(如FM收音时需AB类模式避免EMI干扰)的音频功率放大器。LTK5209是一款3Ω负载下可…

2026/7/27 23:39:36 阅读更多 →
“我的起点如此,那么下一步最佳策略是什么?”

“我的起点如此,那么下一步最佳策略是什么?”

成熟的人生思维,不是沉溺于评价自己的起点,而是在接受现实之后,寻找当前条件下的最优行动。这句话代表一种重要转变: 从:“为什么我是这样的?”转向:“既然现实如此,我如何利用已有条…

2026/7/27 23:38:35 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻