selenium/standalone-all-browsers该Docker镜像基于Selenium Grid的Standalone模式构建,集成了Chrome、Edge和Firefox三种主流浏览器及其对应驱动程序。Standalone模式将Selenium Grid的hub和node功能合并为单一服务,无需单独部署hub和node节点,可快速搭建完整的Selenium自动化测试环境,支持通过标准WebDriver协议进行跨浏览器自动化测试。
通过以下命令启动Selenium Grid Standalone服务:
bashdocker run -d -p 4444:4444 --name selenium-standalone <镜像名称>
说明:
-p 4444:4444:映射Selenium Grid默认服务端口(4444)至主机--name selenium-standalone:指定容器名称,便于管理<镜像名称>:替换为实际使用的Docker镜像标签(如selenium/standalone-chrome-edge-firefox)
容器启动后,通过浏览器访问以下地址打开Selenium Grid控制台:
http://localhost:4444/ui
控制台可查看节点状态、活跃会话、浏览器配置等信息。
通过-e参数设置环境变量调整服务行为,常用参数如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
SE_OPTS | 传递额外Selenium启动参数 | 空 |
SESSION_TIMEOUT | 测试会话超时时间(秒) | 300 |
MAX_SESSIONS | 最大并发会话数 | 根据CPU核心数自动分配 |
BROWSER_TIMEOUT | 浏览器进程超时时间(秒) | 60 |
配置示例:设置会话超时为600秒,最大并发会话数为5
bashdocker run -d -p 4444:4444 \ -e SESSION_TIMEOUT=600 \ -e MAX_SESSIONS=5 \ -e SE_OPTS="--log-level INFO" \ --name selenium-standalone <镜像名称>
通过挂载主机目录持久化Selenium日志:
bashdocker run -d -p 4444:4444 \ -v /host/path/to/logs:/var/log/selenium \ --name selenium-standalone <镜像名称>
使用Selenium客户端库连接至Grid服务,以下为Python示例:
pythonfrom selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # 连接到Selenium Grid driver = webdriver.Remote( command_executor='http://localhost:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME # 指定浏览器,可选CHROME/EDGE/FIREFOX ) # 执行测试操作 driver.get("[***]") print(driver.title) # 关闭会话 driver.quit()
--shm-size=2g参数增加共享内存Q:如何查看浏览器版本?
A:访问Grid控制台http://localhost:4444/ui/nodes,在节点详情中查看已配置的浏览器信息。
Q:测试会话无法连接?
A:检查主机防火墙是否开放4444端口,容器是否正常运行(docker ps),日志是否有错误(docker logs selenium-standalone)。
Q:如何限制特定浏览器使用?
A:通过SE_OPTS参数传递节点配置,如-e SE_OPTS="--exclude-browser chrome"排除Chrome浏览器。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务