首页
/ SeleniumBase项目新增CDP模式下的多标签页操作功能

SeleniumBase项目新增CDP模式下的多标签页操作功能

2025-05-24 22:57:53作者:柏廷章Berta

在SeleniumBase 4.35.4版本中,CDP模式新增了两个实用的浏览器控制方法:open_new_tab()open_new_window()。这两个方法为开发者提供了更便捷的多标签页操作能力,进一步完善了SeleniumBase在Chrome DevTools Protocol(CDP)模式下的功能生态。

功能详解

这两个新增方法具有完全相同的参数和行为,只是方法名称不同以满足不同开发者的使用习惯:

sb.cdp.open_new_tab(url=None, switch_to=True)
sb.cdp.open_new_window(url=None, switch_to=True)

参数说明

  • url参数(可选):指定新标签页要打开的网址。如果留空,则打开空白页。
  • switch_to参数(默认为True):控制是否自动切换到新打开的标签页。

技术背景

CDP模式是SeleniumBase提供的直接使用Chrome DevTools Protocol进行浏览器控制的高级功能。相比传统的WebDriver方式,CDP模式可以提供更底层的浏览器控制能力。这两个新增方法封装了CDP中创建新标签页的底层操作,使开发者能够以更简洁的方式实现多标签页场景的自动化测试。

使用场景

  1. 多页面测试:在需要同时操作多个页面的测试场景中,可以快速打开新标签页进行并行操作。
  2. 页面跳转测试:测试从当前页面打开新标签页并验证内容的功能。
  3. 性能测试:模拟用户同时打开多个标签页的浏览器行为。
  4. 数据对比:在不同标签页中打开相似内容进行对比测试。

最佳实践

# 基本用法 - 打开空白新标签页并自动切换
sb.cdp.open_new_tab()

# 打开指定URL的新标签页但不切换
sb.cdp.open_new_tab("https://example.com", switch_to=False)

# 链式操作示例
(sb.cdp.open_new_tab("https://login.page")
 .type("#username", "testuser")
 .type("#password", "testpass")
 .click("#submit"))

版本兼容性

该功能需要SeleniumBase 4.35.4或更高版本。在使用前,建议通过以下命令确认版本并升级:

pip install seleniumbase --upgrade

总结

SeleniumBase通过新增这两个CDP模式下的方法,进一步简化了多标签页场景的自动化测试代码编写。开发者现在可以更专注于测试逻辑本身,而不必关心底层标签页管理的实现细节。这种高层次的封装正是SeleniumBase框架的价值所在,它让浏览器自动化测试变得更加简单高效。

对于需要进行复杂浏览器操作和测试的团队来说,及时升级到4.35.4及以上版本,可以充分利用这些新功能提升测试效率和代码可读性。

登录后查看全文

项目优选

收起
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
51
15
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
118
207
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
527
404
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
63
145
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
391
37
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
98
251
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
297
1.02 K
arkanalyzerarkanalyzer
方舟分析器:面向ArkTS语言的静态程序分析框架
TypeScript
42
40
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
357
341
CangjieMagicCangjieMagic
基于仓颉编程语言构建的 LLM Agent 开发框架,其主要特点包括:Agent DSL、支持 MCP 协议,支持模块化调用,支持任务智能规划。
Cangjie
583
41