Playwright 如何连接 Selenium Grid 4 在远程节点上启动 Chrome/Edge 测试?

发布时间:2026/11/4 20:51:15

Playwright 如何连接 Selenium Grid 4 在远程节点上启动 Chrome/Edge 测试? Playwright 如何连接 Selenium Grid 4 在远程节点上启动 Chrome/Edge 测试【免费下载链接】playwrightPlaywright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.项目地址: https://gitcode.com/GitHub_Trending/pl/playwright如果你有现成的 Selenium Grid 集群希望 Playwright 的测试不在本机启动浏览器而是由远程 Grid 节点上的 Google Chrome 或 Microsoft Edge 执行可以设置SELENIUM_REMOTE_URL环境变量让 Playwright 直连 Grid Hub。这是 Playwright 文档中明确支持的集成方式但属于experimental功能且只适用于运行 Selenium 4 的 Grid只支持 Chrome/Edge内部通过 Chrome DevTools Protocol websocket 连接浏览器Selenium 4 才暴露这一能力Selenium 后续若移除该能力此集成会停止工作。前提条件与限制开始之前先确认以下几条来自 Selenium Grid 文档的边界Playwright 只连接运行Selenium 4的 Grid Hub目标浏览器仅限 Google Chrome 或 Microsoft Edge分布式 Grid 中每个 node 必须以可被 Playwright 所在机器访问的地址注册到 hub否则 Playwright 拿到 session 后无法连到节点上的浏览器。启动 node 时应设置SE_NODE_GRID_URL指向 hub# Start selenium node SE_NODE_GRID_URLhttp://selenium-hub-ip:4444 java -jar selenium-server-version.jar node其中selenium-hub-ip替换为你的 hub 地址version为 selenium-server jar 的版本号。在连接 Playwright 之前先用 Selenium WebDriver 验证 Grid 本身可用运行 Selenium WebDriver 的任一示例并传入SELENIUM_REMOTE_URL环境变量。如果 webdriver 示例跑不通先检查 hub/node/standalone 的输出日志而不是从 Playwright 侧排查。启动 Selenium Grid可选用官方 Docker 镜像如果你还没有 Grid文档给出的最短路径是运行 Selenium 官方 docker 容器镜像说明见文档中链接的 docker-selenium 文档。Standalone 模式hub 和 node 在同一个localhost上通过SE_NODE_GRID_URL指向自身docker run -d -p 4444:4444 --shm-size2g -e SE_NODE_GRID_URLhttp://localhost:4444 selenium/standalone-chromium:latestHub nodes 模式hub 与 node 在不同 IP 上启动 node 容器时通过SE_EVENT_BUS_HOST、SE_EVENT_BUS_PUBLISH_PORT、SE_EVENT_BUS_SUBSCRIBE_PORT和SE_NODE_GRID_URL指向 hubdocker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.25.0 docker run -d -p 5555:5555 \ --shm-size2g \ -e SE_EVENT_BUS_HOSTselenium-hub-ip \ -e SE_EVENT_BUS_PUBLISH_PORT4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT4443 \ -e SE_NODE_GRID_URLhttp://selenium-hub-ip:4444 \ selenium/node-chromium:4.25.0selenium-hub-ip替换为 hub 容器的实际 IP。连接 Playwright 到 Selenium Grid 4核心操作只有一个设置SELENIUM_REMOTE_URL指向你的 Grid Hub然后像平时一样跑测试。不需要修改测试代码照常用测试框架或method: BrowserType.launch即可。各语言入口如下SELENIUM_REMOTE_URLhttp://selenium-hub-ip:4444 npx playwright testSELENIUM_REMOTE_URLhttp://selenium-hub-ip:4444 pytest --browser chromiumSELENIUM_REMOTE_URLhttp://selenium-hub-ip:4444 mvn testSELENIUM_REMOTE_URLhttp://selenium-hub-ip:4444 dotnet test针对前面两种 Docker 部署对应的命令是SELENIUM_REMOTE_URLhttp://localhost:4444standalone或SELENIUM_REMOTE_URLhttp://selenium-hub-ip:4444hub nodes。要启动 Microsoft Edge在代码里用channel指定 Edge例如 Python 中browser p.chromium.launch(channelmsedge)JavaScript 中use: { channel: msedge }见 browsers.md。内部实现会据此把请求的browserName设为MicrosoftEdge否则为chrome逻辑见 chromium.ts。网格要求额外 capabilities 或 headers 时如果 Grid 来自外部云服务、需要在请求中携带额外参数或授权信息可以用两个环境变量传递 JSON 序列化的值SELENIUM_REMOTE_URLhttp://selenium-hub-ip:4444 SELENIUM_REMOTE_CAPABILITIES{mygrid:options:{os:windows,username:John,password:secure}} npx playwright testSELENIUM_REMOTE_CAPABILITIES中的键值会合并进 Playwright 发送的 capabilities需要额外 HTTP 头时例如授权 token则用SELENIUM_REMOTE_HEADERSSELENIUM_REMOTE_URLhttp://selenium-hub-ip:4444 SELENIUM_REMOTE_HEADERS{Authorization:Basic b64enc} npx playwright test以上均为文档示例os、username、password和 token 值按你的网格实际要求替换。Python、Java、C# 的用法同理只是执行命令分别为pytest --browser chromium、mvn test、dotnet test。验证连接与排查问题设置DEBUGpw:browser*运行可以看到 Playwright 连接 Selenium Grid 的详细过程DEBUGpw:browser* SELENIUM_REMOTE_URLhttp://internal.grid:4444 npx playwright test从 实现代码可以看到这条 debug 日志依次输出selenium connecting to hubUrl向 hub 的session接口发起 POST、selenium connected to sessionId...拿到 session、selenium using selenium v4以及selenium retrieved endpoint ... for sessionId...Selenium 4 走se:cdp提供的 CDP websocket 代理。能看到 endpoint 成功获取说明 Playwright 已接到节点浏览器上向 hub 提交的是capabilities.alwaysMatch其中包含--remote-debugging-port0启动参数。仓库中的集成测试 browsertype-launch-selenium.spec.ts 覆盖了对 Selenium 4.8.3 的 standalone 与 hub node 两种形态的连接验证。排查时按文档给出的顺序webdriver 示例都跑不通问题在 Grid 本身。查看 hub/node/standalone 输出并对照 Selenium 项目的 issue 库解决。webdriver 可用但 Playwright 连接失败用DEBUGpw:browser*定位卡在哪一步提交 issue 时附上该日志。仓库测试中还展示了驱动损坏时的报错形态示例Error connecting to Selenium at http://127.0.0.1:port/session: Could not start a new session此时 Grid 侧不会出现Starting ChromeDriver说明 session 根本没创建成功。误用了非 Chromium 浏览器设置SELENIUM_REMOTE_URL后连接只支持 Chromium 通道承载 Chrome/Edge用其他浏览器会报Connecting to SELENIUM_REMOTE_URL is only supported by Chromium。不支持 Selenium 3 的说明Selenium 3 不暴露 CDP websocketPlaywright 对它是best-effort支持尝试直连 Grid 节点前提是节点必须能被运行 Playwright 的机器直接访问。如果你的 Grid 无法升级到 Selenium 4远程节点的可达性是唯一能自行保证的条件。完整的参数与示例见 docs/src/selenium-grid.md。【免费下载链接】playwrightPlaywright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.项目地址: https://gitcode.com/GitHub_Trending/pl/playwright创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/29 4:38:38

AI云原生推理利器InferNex:GPU共享调度与推理服务实战

2026年的KubeCon Europe现场,openFuyao的展台前面排队的人比我想象中多。按理说,AI推理这种偏底层的项目,很难像大模型Demo一样吸引路人,但InferNex套件在现场演示的GPU利用率和显存调度曲线确实让人眼前一亮:同一个集…

2026/11/1 10:51:43

如何为 uBOLite 将过滤列表转换为声明式 ruleset?

如何为 uBOLite 将过滤列表转换为声明式 ruleset? 【免费下载链接】uBlock uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean. 项目地址: https://gitcode.com/GitHub_Trending/ub/uBlock uBlock Origin 仓库中包含一个 MV3 分…

2026/11/4 20:49:15

小模型+rerank做判定任务:16个实验后的工程复盘

1. 为什么我会盯上“rerank 小模型”这条路线先说结论:这 16 个实验跑完,我认输了,但不是那种“这条路走不通”的认输,而是“用我最初设想的那种最省事的方式走不通”的认输。这个区别很重要,因为它直接决定了你后面要…

2026/11/4 20:49:15

短剧SAAS源码拆包实战:多租户架构与支付回调避坑指南

简介:面向短剧创业者、影视小程序开发者与中小型内容平台运营者的2024版视频短剧SAAS系统源码,采用SAAS多租户架构,可快速搭建一套支持微信小程序与公众号H5双端的短剧分发平台,解决从内容上架、会员运营到分销变现的完整链路问题…

2026/11/4 20:49:15

航空航天大文件传输优化:WebUploader分片与断点续传实践

1. 项目背景与需求解析在航空航天领域的数字化进程中,三维模型文件已成为飞机设计、卫星仿真等核心业务的关键载体。这类文件通常具有以下典型特征:单文件体积庞大(普遍500MB-20GB)包含精密的结构化数据(如CAD模型、流…

2026/11/4 20:49:15

CloudCLI 实战:为 Claude Code 打造可视化 Web 工作台与插件系统

命令行工具用久了,总有一种“效率很高但心里没底”的感觉——尤其是像 Claude Code 这类以终端交互为核心的 AI 编程助手,敲一条指令、等一段流式输出、再手动翻上下文,流程是通的,但状态不可见、插件不好管、多会话切换全靠记忆。…

2026/11/4 20:49:15

APON光模块在工业通信中的革新与应用

1. 工业通信的技术演进与挑战工业通信领域正在经历一场深刻的变革。传统PON(无源光网络)技术虽然在过去十年中为工业互联网提供了基础连接能力,但随着智能制造、工业物联网(IIoT)和边缘计算的快速发展,现有网络架构已经暴露出明显…

2026/11/4 20:44:13

突破万级GFLOPS:CUDA矩阵乘法向量化优化实战

盯着Nsight Compute输出的sm__throughput,看到数字稳稳停在90%以上时,我知道这张卡上纯CUDA向量化的矩阵乘法算是跑通了一个里程碑——单次40964096的FP32 SGEMM,算力突破10000 GFLOPS。从最初300多毫秒的朴素内核,到最后13毫秒出…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑