该项目是由志愿者贡献者完成的,他们投入了数千小时的时间,并在 Apache License 2.0 下免费提供源代码。
这些 Docker 镜像带有一些标签来简化其使用,请在我们的一个版本中查看它们。
要获取新版本的通知,请将您自己添加为“仅发布”观察者。
这些镜像发布到 Selenium Docker Hub 的 Docker Hub 注册表中。
您需要帮助来使用这些 Docker 镜像吗?请通过 https://www.selenium.dev/support/ 与我们联系
--shm-size="2g"
docker run -d -p 4444:4444 -p 7900:7900 --shm-size= " 2g " selenium/standalone-firefox:4.26.0-20241101
将您的 WebDriver 测试指向 http://localhost:4444
就是这样!
(可选)要查看容器内发生的情况,请访问 http://localhost:7900/?autoconnect=1&resize=scale&password=secret。
有关可视化容器活动的更多详细信息,请查看调试部分。
☝️ 当对包含浏览器的镜像执行docker run
时,请使用标志--shm-size=2g
来使用主机的共享内存。
☝️ 始终使用带有完整标签的 Docker 镜像来固定特定的浏览器和 Grid 版本。有关详细信息,请参阅标记约定。
从基于image tag的4.21.0
开始,该项目支持的架构如下:
建筑学 | 可用的 |
---|---|
x86_64(又名 amd64) | ✅ |
aarch64(又名arm64/armv8) | ✅ |
armhf(又名arm32/armv7l) | ❌ |
以下浏览器在多架构映像中可用:
建筑学 | 铬合金 | 铬 | 火狐浏览器 | 边缘 |
---|---|---|---|---|
x86_64(又名 amd64) | ✅ | ✅ | ✅ | ✅ |
aarch64(又名arm64/armv8) | ❌ | ✅ | ✅ | ❌ |
armhf(又名arm32/armv7l) | ❌ | ❌ | ❌ | ❌ |
笔记:
Google 不会为 Linux/ARM 平台构建 Chrome ( google-chrome
)。因此,Chrome(节点和独立)映像仅适用于 AMD64。同样,微软也没有为 Linux/ARM 平台构建 Edge ( microsoft-edge
)。
由于性能和稳定性问题,不建议在 ARM64 平台上模拟运行 AMD64 映像。
对于 Linux/ARM,请使用开源 Chromium 浏览器。 Chromium(节点和独立)映像可在多架构中使用。
$ docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latest
多架构图像在 CircleCI 上使用资源类 Linux/ARM64 进行测试。请参阅下面的状态。
对于在 Apple M 系列或 Raspberry Pi 等平台上运行的实验性 docker 容器映像,seleniumhq-community/docker-seleniarm 的存储库提供了在 Seleniarm Docker Hub 注册表上发布的映像。
有关这些图像的更多信息,请参阅问题 #1076。
现在,分叉 seleniumhq-community/docker-seleniarm 已合并。
我们建议在 Docker Engine 中启用容器化镜像存储的实验功能。 containerd
理解多平台镜像,其中单个镜像标签可以引用涵盖一系列操作系统和硬件架构的不同变体。它简化了在不同平台上构建、存储和分发图像的过程。
在 Docker 引擎中启用该功能的单个命令:
make set_containerd_image_store
要构建多平台的所有映像,请运行以下命令:
PLATFORMS=linux/amd64,linux/arm64 make build
要构建特定平台的映像,请运行以下命令:
PLATFORMS=linux/arm64 make build
默认情况下,在不指定PLATFORMS
变量的情况下,映像是为linux/amd64
平台构建的。
Nightly 镜像构建在上游项目 Selenium 的 Nightly 构建之上,并包含此存储库中主分支的最新更改。图像标签是nightly
。不建议在生产中使用图像。它仅用于测试目的。
$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:nightly
查看 docker compose 以开始使用 Nightly 镜像 docker-compose-v3-full-grid-nightly.yml
为了运行测试或以其他方式使用预发布的浏览器,Google、Mozilla 和 Microsoft 为那些需要查看即将向普通大众发布的内容的人维护了一个开发和 Beta 发布渠道。
以下是在独立模式下运行它们的说明:
铬测试版:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:beta
Chrome 开发人员:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:dev
火狐测试版:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:beta
火狐开发者:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:dev
边缘测试版:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:beta
边缘开发:
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:dev
docker-compose-v3-beta-channel.yml:
# To execute this docker compose yml file use `docker compose -f docker-compose-v3-beta-channel.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-beta-channel.yml down`
version: " 3 "
services:
chrome:
image: selenium/node-chrome:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
edge:
image: selenium/node-edge:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
firefox:
image: selenium/node-firefox:beta
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
ports:
- " 4442:4442 "
- " 4443:4443 "
- " 4444:4444 "
docker-compose-v3-dev-channel.yml:
# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dev-channel.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dev-channel.yml down`
version: " 3 "
services:
chrome:
image: selenium/node-chrome:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
edge:
image: selenium/node-edge:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
firefox:
image: selenium/node-firefox:dev
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
ports:
- " 4442:4442 "
- " 4443:4443 "
- " 4444:4444 "
有关 Dev 和 Beta 通道容器映像的更多信息,请参阅有关通过 Docker Selenium 开发和 Beta 通道浏览器的博客文章。
火狐浏览器
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-firefox:4.26.0-20241101
铬合金
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-chrome:4.26.0-20241101
边缘
docker run -d -p 4444:4444 --shm-size= " 2g " selenium/standalone-edge:4.26.0-20241101
注意: 4444
端口只能同时运行一个Standalone容器。
有不同的方法来运行图像并创建具有集线器和节点的网格,请检查以下选项。
集线器和节点将在同一网络中创建,它们将通过容器名称相互识别。第一步需要创建 Docker 网络。
$ docker network create grid
$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-chrome:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-edge:4.26.0-20241101
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub
--shm-size= " 2g "
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium/node-firefox:4.26.0-20241101
$ docker network create grid
$ docker run - d - p 4442 - 4444 : 4442 - 4444 -- net grid -- name selenium - hub selenium / hub: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - chrome: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - edge: 4.26 . 0 - 20241101
$ docker run - d -- net grid - e SE_EVENT_BUS_HOST = selenium - hub `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
selenium / node - firefox: 4.26 . 0 - 20241101
当您使用完网格并且容器已退出时,可以使用以下命令删除网络:
# Removes the grid network
$ docker network rm grid
集线器和节点将创建在不同的机器/虚拟机上,它们需要知道彼此的 IP 才能正确通信。如果多个节点将在同一台机器/VM 上运行,则必须将它们配置为公开不同的端口。
$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.26.0-20241101
$ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 2>
selenium/node-chrome:4.26.0-20241101
$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 2> `
selenium / node - chrome: 4.26 . 0 - 20241101
$ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 3>
selenium/node-edge:4.26.0-20241101
$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 3> `
selenium / node - edge: 4.26 . 0 - 20241101
$ docker run -d -p 5555:5555
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 4>
selenium/node-firefox:4.26.0-20241101
$ docker run - d - p 5555 : 5555 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 4> `
selenium / node - firefox: 4.26 . 0 - 20241101
$ docker run -d -p 5556:5556
--shm-size= " 2g "
-e SE_EVENT_BUS_HOST= < ip-from-machine- 1>
-e SE_EVENT_BUS_PUBLISH_PORT=4442
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443
-e SE_NODE_HOST= < ip-from-machine- 4>
-e SE_NODE_PORT=5556
selenium/node-chrome:4.26.0-20241101
$ docker run - d - p 5556 : 5556 `
-- shm - size = " 2g " `
- e SE_EVENT_BUS_HOST = < ip - from - machine - 1> `
- e SE_EVENT_BUS_PUBLISH_PORT = 4442 `
- e SE_EVENT_BUS_SUBSCRIBE_PORT = 4443 `
- e SE_NODE_HOST = < ip - from - machine - 4> `
- e SE_NODE_PORT = 5556 `
selenium / node - chrome: 4.26 . 0 - 20241101
Docker Compose 是启动网格的最简单方法。使用下面的链接资源,将它们保存在本地并检查每个文件顶部的执行指令。
docker-compose-v2.yml
docker-compose-v3.yml
要停止网格并清理创建的容器,请运行docker compose down
。
docker-compose-v3-swarm.yml
可以启动一个 Selenium 网格,并将其所有组件分开。为了简单起见,仅提供 docker compose 的示例。将文件保存到本地,然后查看上面的执行指令。
docker-compose-v3-full-grid.yml
环境变量 | 选项 | 类型 | 默认值 | 描述 |
---|---|---|---|---|
SE_REJECT_UNSUPPORTED_CAPS | --reject-unsupported-caps | 布尔值 | false | 如果网格不支持所请求的功能,则允许分发者立即拒绝请求。 |
SE_HEALTHCHECK_INTERVAL | --healthcheck-interval | 整数 | 120 | 这确保服务器在一段时间后可以成功 ping 所有节点。 |
可以使用selenium/video:ffmpeg-7.1-20241101
Docker 镜像来记录测试执行情况。每个运行浏览器的容器都需要一个容器。这意味着如果您运行 5 个节点/独立容器,则将需要 5 个视频容器,映射为 1-1。
目前,执行此映射的唯一方法是手动(手动启动容器或通过docker compose
)。我们正在迭代这个过程,将来这个设置可能会更加简单。
我们提供的视频Docker镜像是基于jrottenberg/ffmpeg项目提供的ffmpeg Ubuntu镜像,感谢您提供这个镜像并简化了我们的工作?
从基于镜像标签的4.20.0
开始,视频 Docker 镜像基于 linuxserver/docker-ffmpeg 项目提供的 FFmpeg Ubuntu 镜像,因为该镜像可用于多平台。感谢您简化我们的项目并帮助我们在多种架构支持方面取得进展。
注意事项:
/videos
目录中。映射本地目录以获取视频。FILE_NAME
环境变量覆盖视频文件名,以避免出现意外结果。此示例显示如何手动启动容器:
$ docker network create grid
$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size= " 2g " selenium/standalone-chrome:4.26.0-20241101
$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-7.1-20241101
# Run your tests
$ docker stop video && docker rm video
$ docker stop selenium && docker rm selenium
容器停止并删除后,您应该在计算机的/tmp/videos
目录中看到一个视频文件。
这是使用集线器和一些节点的示例:
docker-compose-v3-video.yml
基于元数据在测试中的支持。当录像机与浏览器节点一起部署并启用SE_VIDEO_FILE_NAME=auto
并将元数据添加到测试中时,视频文件名将提取功能se:name
的值并将其用作视频文件名。
例如在 Python 绑定中:
from selenium . webdriver . chrome . options import Options as ChromeOptions
from selenium import webdriver
options = ChromeOptions ()
options . set_capability ( 'se:name' , 'test_visit_basic_auth_secured_page (ChromeTests)' )
driver = webdriver . Remote ( options = options , command_executor = "http://localhost:4444" )
driver . get ( "https://selenium.dev" )
driver . quit ()
输出视频文件名将为test_visit_basic_auth_secured_page_ChromeTests_<sessionId>.mp4
。
如果您的测试名称由测试框架处理,并且它是唯一的,您还可以通过设置SE_VIDEO_FILE_NAME_SUFFIX=false
来禁用会话 ID 附加到视频文件名。
文件名将被修剪为 255 个字符以避免长文件名。此外, space
字符将被_
替换,并且文件名中仅保留字母、数字、 -
(连字符)、 _
(下划线)字符。
可以通过设置SE_VIDEO_FILE_NAME_TRIM_REGEX
环境变量来自定义修剪正则表达式。默认值为[:alnum:]-_
。正则表达式应与 bash 中的tr
命令兼容。
在部署级别,记录器容器始终处于运行状态。此外,您可以通过会话功能se:recordVideo
禁用视频录制过程。例如在 Python 绑定中:
options . set_capability ( 'se:recordVideo' , False )
在录像机容器中,会根据Node SessionId在Hub中执行查询GraphQL,并提取capability中se:recordVideo
的值,然后决定是否启动视频录制过程。
注意:要到达 GraphQL 端点,记录器容器需要知道 Hub URL。 Hub URL 可以通过环境变量SE_NODE_GRID_URL
传递。例如SE_NODE_GRID_URL
是http://selenium-hub:4444
。
RCLONE 安装在录像机映像中。您可以使用它将视频上传到云存储服务。除了上面提到的视频录制之外,您还可以通过设置以下环境变量来启用上传功能:
version : " 3 "
services :
chrome_video :
image : selenium/video:ffmpeg-7.1-20241101
depends_on :
- chrome
environment :
- DISPLAY_CONTAINER_NAME=chrome
- SE_VIDEO_FILE_NAME=auto
- SE_VIDEO_UPLOAD_ENABLED=true
- SE_UPLOAD_DESTINATION_PREFIX=s3://mybucket/path
- RCLONE_CONFIG_S3_TYPE=s3
- RCLONE_CONFIG_S3_PROVIDER=GCS
- RCLONE_CONFIG_S3_ENV_AUTH=true
- RCLONE_CONFIG_S3_REGION=asia-southeast1
- RCLONE_CONFIG_S3_LOCATION_CONSTRAINT=asia-southeast1
- RCLONE_CONFIG_S3_ACL=private
- RCLONE_CONFIG_S3_ACCESS_KEY_ID=xxx
- RCLONE_CONFIG_S3_SECRET_ACCESS_KEY=xxx
- RCLONE_CONFIG_S3_ENDPOINT=https://storage.googleapis.com
- RCLONE_CONFIG_S3_NO_CHECK_BUCKET=true
SE_VIDEO_FILE_NAME=auto
将使用会话 ID 作为视频文件名。这可确保上传的视频文件名是唯一的。视频文件名构造根据节点端点/status
(和可选的 GraphQL 端点)自动工作,以获取会话 ID、功能。
SE_VIDEO_UPLOAD_ENABLED=true
将启用视频上传功能。在后台,它将创建一个包含文件和目标的管道文件,供上传者使用和继续。
SE_VIDEO_INTERNAL_UPLOAD=true
将使用容器中安装的 RCLONE 进行上传。如果您想使用其他 sidecar 容器进行上传,请将其设置为false
。
每个模式的 ENV 变量 | 集线器/节点 | 独立角色 | 动态网格 |
---|---|---|---|
SE_VIDEO_RECORD_STANDALONE (强制) | false (默认) | true | true |
DISPLAY_CONTAINER_NAME (必填) | 用户输入 | 用户输入 | (非必需) |
SE_NODE_PORT (可选) | 5555 | 4444 | (非必需) |
SE_NODE_GRID_URL (可选) | 用户输入 | (非必需) | (非必需) |
对于带有前缀RCLONE_
环境变量,用于将远程配置传递给 RCLONE。您可以在此处找到有关 RCLONE 配置的更多信息。在动态网格中使用时,这些变量应与前缀SE_
组合,例如SE_RCLONE_
。请参阅下面的参考资料了解更多详细信息。
配置Hub和Node的视频录制和上传:docker-compose-v3-video-upload.yml
为独立角色配置视频录制和上传:docker-compose-v3-video-upload-standalone.yml
配置动态网格(node-docker)的视频录制和上传:docker-compose-v3-video-upload-dynamic-grid.yml
配置 Dynamic Grid 独立版 (standalone-docker) 的视频录制和上传:tests/docker-compose-v3-test-standalone-docker.yaml
环境变量 | 默认值 | 描述 |
---|---|---|
SE_UPLOAD_RETAIN_LOCAL_FILE | false | 上传成功后保留本地文件 |
SE_UPLOAD_COMMAND | copy | RCLONE命令用于传输文件。当保留本地文件为false 时强制move |
SE_UPLOAD_OPTS | -P --cutoff-mode SOFT --metadata --inplace | 可以设置属于 RCLONE 命令的其他选项。 |
SE_UPLOAD_CONFIG_FILE_NAME | upload.conf | 远程主机的配置文件,而不是通过环境变量前缀 SE_RCLONE_* 设置 |
SE_UPLOAD_CONFIG_DIRECTORY | /opt/bin | 配置文件目录(挂载其他目录下的conf文件时更改) |
Grid 4 能够按需启动 Docker 容器,这意味着它会在后台为每个新会话请求启动一个 Docker 容器,在那里执行测试,当测试完成时,容器将被丢弃。
此执行模式可以在独立角色或节点角色中使用。 “动态”执行模式需要被告知容器启动时要使用哪些 Docker 镜像。此外,Grid 需要知道 Docker 守护进程的 URI。该配置可以放置在本地toml
文件中。
您可以将此文件保存在本地并命名,例如config.toml
。
[ docker ]
# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to
# start a container with the given image.
configs = [
" selenium/standalone-firefox:4.26.0-20241101 " , ' {"browserName": "firefox"} ' ,
" selenium/standalone-chrome:4.26.0-20241101 " , ' {"browserName": "chrome"} ' ,
" selenium/standalone-edge:4.26.0-20241101 " , ' {"browserName": "MicrosoftEdge"} '
]
host-config-keys = [ " Dns " , " DnsOptions " , " DnsSearch " , " ExtraHosts " , " Binds " ]
# URL for connecting to the docker daemon
# Most simple approach, leave it as http://127.0.0.1:2375, and mount /var/run/docker.sock.
# 127.0.0.1 is used because internally the container uses socat when /var/run/docker.sock is mounted
# If var/run/docker.sock is not mounted:
# Windows: make sure Docker Desktop exposes the daemon via tcp, and use http://host.docker.internal:2375.
# macOS: install socat and run the following command, socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock,
# then use http://host.docker.internal:2375.
# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.
url = " http://127.0.0.1:2375 "
# Docker image used for video recording
video-image = " selenium/video:ffmpeg-7.1-20241101 "
# Uncomment the following section if you are running the node on a separate VM
# Fill out the placeholders with appr