ChromeDriver 驱动口
浏览器自动化驱动 ChromeDriver 的默认监听端口:基于 WebDriver 协议的测试与爬虫框架通过 9515 驱动 Chrome 执行操作。它以本机服务形式运行且默认没有任何认证,能新建会话就意味着能加载任意页面、执行脚本并读取浏览器上下文。
基本信息
| 服务 | ChromeDriver |
|---|---|
| 协议 | TCP/HTTP(W3C WebDriver) |
| 默认端口 | 9515,可用 --port 指定 |
| 启动方式 | chromedriver --port=9515 |
| 暴露面 | 仅本机或 CI 内网 |
典型使用场景
- CI 流水线中执行端到端测试
- 爬虫抓取需要渲染的动态页面
- 批量回归:执行用例并留存截图与页面源码
- 本地调试:用 curl 直接调 WebDriver 接口验证元素定位
- 容器化测试:把驱动与浏览器打进同一镜像
启动与接口验证
启动与接口验证
chromedriver --port=9515 & # 启动驱动
curl -s http://127.0.0.1:9515/status | head -c 200
curl -s -X POST http://127.0.0.1:9515/session -H 'Content-Type: application/json' -d '{"capabilities":{"alwaysMatch":{}}}'
ss -lntp | grep 9515 # 确认绑定地址排障与核对
| 检查项 | 做法 | 异常表现 |
|---|---|---|
| 会话状态 | curl /status | 已有 session 在运行:环境被用过,注意清理 |
| 绑定地址 | ss -lntp | grep 9515 | 绑定 0.0.0.0:同网段可新建会话 |
| 版本匹配 | chromedriver --version 与 Chrome 版本对照 | 主版本不匹配:会话创建直接失败 |
| 日志 | 驱动启动日志中的会话请求 | 陌生来源创建会话:口令或 Cookie 可能已泄露 |
ChromeDriver 与 Chrome 的主版本号必须匹配,浏览器自动升级后流水线常整体失败,表现是会话说建不起来而不是断言失败;在测试镜像里同时锁定两者版本,或统一走版本管理工具最省事。
为什么它算高危端口
新建 WebDriver 会话后,调用方能加载任意地址、执行脚本、读取页面内容与 Cookie。测试机上往往登录着内部系统或持有测试账号,端口一旦被同网段其他主机访问,会话与登录态就能被借走,而受害侧在浏览器里看不到任何异常。
容器化流水线里驱动与浏览器常同容器运行,端口只应发布到本机或 CI 内网;任务结束后显式退出驱动进程并清理临时 profile,避免凭据与缓存长期残留在磁盘上。
CI 机上 9515 长期监听 0.0.0.0 且浏览器带着登录态:等于把会话借给任何能访问该端口的主机。