ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

docker-selenium 标签体系深度解读:Selenium Grid 4.48.0 搭配 Chrome 109 镜像的发布记录与使用实践

docker-selenium 标签体系深度解读:Selenium Grid 4.48.0 搭配 Chrome 109 镜像的发布记录与使用实践 测试后端云原生容器编排可观测性【免费下载链接】docker-seleniumProvides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Container Platform, making it easier to perform browser automation at scale项目地址https://gitcode.com/GitHub_Trending/do/docker-selenium点击查看免费下载Selenium Grid 4.48.0 正式发布了配套 Chrome 109 的 Node 与 Standalone 镜像本文以 CHANGELOG/4.48.0/chrome_109.md 这份发布记录为核心逐行解读镜像标签的生成过程与命名规则并结合 tag_and_push_browser_images.sh、NodeChrome/Dockerfile 等源码说明底层机制。读完本文你将能够读懂任意一条 docker-selenium 浏览器版本发布记录并准确地在docker run中选用固定浏览器版本 固定 Grid 版本的完整标签。一条发布记录里有什么原始输出全文Chrome 109 在 Selenium Grid 4.48.0 下的发布记录只有一段命令输出它是发布流水线中tag_and_push_browser_images.sh的真实执行结果./tag_and_push_browser_images.sh 4.48.0 20260909 selenium false chrome true Tagging images for browser chrome, version 4.48.0, build date 20260909, namespace selenium Selenium Grid version - 4.48.0-20260909 Chrome version - 109.0.5414.119 Short Chrome version - 109.0 ChromeDriver version - 109.0.5414.74 Short ChromeDriver version - 109.0 Tagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.48.0-20260909 Tagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.48.0-20260909 Tagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20260909 Tagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20260909 Tagged selenium/node-chrome:109.0.5414.119-20260909 Tagged selenium/standalone-chrome:109.0.5414.119-20260909 Tagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.48.0-20260909 Tagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.48.0-20260909 Tagged selenium/node-chrome:109.0-chromedriver-109.0-20260909 Tagged selenium/standalone-chrome:109.0-chromedriver-109.0-20260909 Tagged selenium/node-chrome:109.0-20260909 Tagged selenium/standalone-chrome:109.0-20260909这段输出虽然简短却浓缩了一次浏览器版本发布的关键信息Grid 版本、浏览器版本、WebDriver 版本以及最终对外发布的 12 个镜像标签。逐字段解读命令参数与版本探测记录第一行的命令对应 tag_and_push_browser_images.sh 的位置参数定义位置参数值脚本变量含义14.48.0VERSIONSelenium Grid 版本号220260909BUILD_DATE构建日期YYYYMMDD3seleniumNAMESPACE镜像命名空间4falsePUSH_IMAGE是否执行docker push本次为否仅打标5chromeBROWSER浏览器类型6trueRELEASE_OLD_VERSION是否按旧版本方式发布随后脚本分别通过容器内命令探测精确版本号Chrome 版本docker run --platform linux/amd64 --rm selenium/node-chrome:4.48.0-20260909 google-chrome --version取第三段得到109.0.5414.119ChromeDriver 版本同样方式执行chromedriver --version取第二段得到109.0.5414.74short_version()函数脚本第 53-57 行按.切分并取前两段得到短版本109.0。需要留意一个细节脚本第 16 行实际使用的是NAMESPACE${NAME:-selenium}即第三个位置参数只有在未设置NAME环境变量时才生效这是脚本自身的实现逻辑。12 个标签的完整清单与命名规则本次发布为node-chrome与standalone-chrome两个镜像各生成 6 个标签合计 12 个。命名规则来自 docs/docker-hub/node-chrome.md 所描述的 Tagging Convention即浏览器完整版本 ChromeDriver 版本 Grid 版本 构建日期的多种排列组合#标签以 node-chrome 为例包含信息1109.0.5414.119-chromedriver-109.0.5414.74-grid-4.48.0-20260909完整浏览器版本、完整 Driver 版本、Grid 版本与构建日期2109.0.5414.119-chromedriver-109.0.5414.74-20260909完整浏览器版本、完整 Driver 版本与构建日期3109.0.5414.119-20260909完整浏览器版本与构建日期4109.0-chromedriver-109.0-grid-4.48.0-20260909短浏览器版本、短 Driver 版本、Grid 版本与构建日期5109.0-chromedriver-109.0-20260909短浏览器版本、短 Driver 版本与构建日期6109.0-20260909短浏览器版本与构建日期以第一个标签为例其构造规则为${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION}其中TAG_VERSION4.48.0-20260909。标签越长越精确它同时锁定了浏览器、Driver 与 Grid 三个版本适合对可复现性要求极高的回归测试环境。为什么这次没有裸版本标签RELEASE_OLD_VERSION 的作用对比 脚本第 75-99 行 可以发现标签生成逻辑分为两段第一段6 个始终生成第二段在RELEASE_OLD_VERSIONfalse时才追加包含109.0.5414.119、109.0、109.0-chromedriver-109.0.5414.74等不含构建日期的短标签。本次命令第六个参数传的是true因此输出中恰好只有 6 个标签。从代码结构可以推断当发布的是较老的浏览器版本时刻意跳过裸版本标签避免109.0这类无日期标签被误当作当前活跃版本拉取从而造成版本语义歧义——这与 CHANGELOG/README.md 中按浏览器版本固定镜像用于跨浏览器测试或规避特定版本问题的设计初衷一致。另外由于PUSH_IMAGEfalse本次只执行了docker tag见 retag() 函数第 46-50 行输出中只出现Tagged而没有Pushed字样若开启推送则每个标签会紧跟一条docker push。Chrome 109 的特殊性ChromeDriver 的 legacy 下载路径Chrome 109 属于 115 之前的版本这一事实直接决定了它的 Driver 来源。在 NodeChrome/install-chromedriver.sh 中有明确的注释与分支Chrome versions before 115 predate Chrome for Testing and are served by the frozen chromedriver.storage.googleapis.com API, which only ever had linux64.也就是说Chrome 109 的 ChromeDriver 只能通过https://chromedriver.storage.googleapis.com/LATEST_RELEASE_109接口获取且仅提供linux64架构产物这正是本次发布输出中 ChromeDriver 版本为109.0.5414.74与 Chrome 109.0.5414.119 各自独立编号的原因。Chrome 115 及以后才进入 Chrome for TestingCfT体系由 resolve-chromedriver-source.sh 统一裁决下载来源。构建侧NodeChrome/Dockerfile 通过ARG CHROME_VERSION、ARG CHROME_DRIVER_VERSION控制版本注入并依赖 install-chrome.sh 完成 apt 源安装镜像内还会将探测到的浏览器版本写入/opt/selenium/browsers/chrome/version供 Selenium Grid 节点注册能力时上报。实战如何拉取并运行这批镜像方式一作为 Grid Node 使用先创建网络并启动 Hub再以固定标签启动 Chrome 109 节点参考 docs/docker-hub/node-chrome.mddocker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest docker run -d --net grid \ -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.48.0-20260909随后将 WebDriver 测试指向http://localhost:4444即可。方式二以 Standalone 模式独立运行不需要 Hub 时直接使用 standalone 镜像docker run -d -p 4444:4444 --shm-size2g \ selenium/standalone-chrome:109.0-20260909实践建议含浏览器的镜像务必加--shm-size2g否则可能因共享内存不足导致浏览器崩溃尽量使用长标签锁定浏览器、Driver 与 Grid 三个版本latest只适合快速验证想要语义更清晰的短标签109.0-20260909足够区分同一天发布的同版本浏览器。版本矩阵与归档机制chrome_109.md并非孤立文件它隶属于 CHANGELOG/README.md 维护的Grid 版本 × 浏览器版本矩阵4.48.0 行中 Chrome 109 列对应的 ✓ 即链接到本文所解读的这份记录。该矩阵由 CHANGELOG/generate-matrix-readme.py 自动生成——脚本以正则([\w-])_(\d)\.md扫描各版本目录将浏览器与版本号解析进二维矩阵并在发布新 Grid 版本时将旧版本目录移入archived/归档。因此读者可以从矩阵的 Chrome 列一目了然地找到哪个 Grid 版本还提供 Chrome 109 镜像再按对应 changelog 中记录的长标签拉取使用。小结一条看似简单的发布输出背后是 docker-selenium 精心设计的镜像标签体系完整版本保证可复现、短版本保证易用、RELEASE_OLD_VERSION保证旧版本不污染活跃标签、legacy/CfT 双路径保证不同 Chrome 时代的 Driver 都能正确下载。理解了这条 Chrome 109 发布记录你就能独立读懂仓库中任意浏览器版本Chrome、Chrome for Testing、Edge、Firefox的 changelog并快速定位到适合自己的镜像标签。赞分享测试后端云原生容器编排可观测性【免费下载链接】docker-seleniumProvides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Container Platform, making it easier to perform browser automation at scale项目地址https://gitcode.com/GitHub_Trending/do/docker-selenium点击查看免费下载相关推荐docker-selenium 发布实录Selenium Grid 4.48.0 如何为 Chrome for Testing 137 生成镜像标签docker selenium 发布实录Selenium Grid 4.48.0 如何为 Chrome for Testing 137 生成镜像标签 本篇文章测试后端云原生容器编排可观测性docker-selenium 4.48.0 发布记录解读Chrome for Testing 128.0.6613.137 镜像标签体系与构建链路docker selenium 4.48.0 发布记录解读Chrome for Testing 128.0.6613.137 镜像标签体系与构建链路 本篇技术测试后端云原生容器编排可观测性docker-selenium 4.48.0 Chrome for Testing 125 镜像发布与标签体系详解docker selenium 4.48.0 Chrome for Testing 125 镜像发布与标签体系详解 本指南以 docker selenium 仓测试后端云原生容器编排可观测性上一篇从玩家到开发者Freedoom贡献指南提交关卡与素材的完整流程下一篇Metalsmith纳米能源收集微型发电的静态网站介绍创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表