Using selenium/node-docker
and selenium/hub
how can I access to the novnc live preview displayed on http://<node-ip>:7900?autoconnect=1&resize=scale&password=secret
here’s my docker-compose
version: "3"
services:
node-docker:
container_name: node-docker
image: selenium/node-docker:4.21.0-20240522
volumes:
- ./assets:/opt/selenium/assets #For video recordings
- ./config.toml:/opt/bin/config.toml #Mount configuration file
- /var/run/docker.sock:/var/run/docker.sock #Grid to run docker commands
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- SE_VNC_VIEW_ONLY=1
- SE_VNC_NO_PASSWORD=1
selenium-hub:
image: selenium/hub:4.21.0-20240522
container_name: selenium-hub
ports:
- "4442:4442"
- "4443:4443"
- "4444:4444"
app:
container_name: app
build:
context: ./app
ports:
- "5000:5000"
and here’s the config.toml used by selenium/node-docker to build the nodes
[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-chrome:4.21.0-20240522", '{"browserName": "chrome"}'
]
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-6.1.1-20240522"
# Uncomment the following section if you are running the node on a separate VM
# Fill out the placeholders with appropriate values
#[server]
#host = <ip-from-node-machine>
#port = <port-from-node-machine>
all I want is to display the live test in my app but I couldn’t get it working I even tried directly through the novnc websocket binary messages in ws://0.0.0.0:4444/session/<session_id>/se/vnc
but things where too complicated.
Any help please ?