VNC 在 Selenoid 中断开连接
VNC is Getting disconnected in Selenoid
我正在使用 Selenoid 进行自动化。我可以 运行 在 Selenoid 上进行测试,但是,当我单击 运行ning 浏览器会话时,我无法看到实时执行。 IE。 VNC 正在断开连接。也发生在手动会话中。
请参考控制台输出的屏幕截图:
设置:
使用Nginx 访问远程机器(CentOS) 中的Selenoid。
端口 8081 托管 selenoid,端口 8080 托管 selenoid-ui。
浏览器图像是 selenoid/vnc_firefox:86.0.
这就是我启动容器的方式
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v ${HOME}:/root -e OVERRIDE_HOME=${HOME} aerokube/cm:latest-release selenoid start --port 8081 --vnc
docker run -it --rm -d --name selenoid-ui --link selenoid --network selenoid -p 8080:8080 aerokube/selenoid-ui:latest --selenoid-uri http://examplefqdn.com:8081
docker run --name nginx6 -d -v /etc/ssl_temp:/etc/ssl_temp -p 80:80 -p 443:443 -p 8443:8443 nginx
下面是我用 Nginx.conf 试过的。
server {
listen 80;
listen 443 ssl;
listen 8443 ssl;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
server_name example.com;
ssl_certificate /etc/ssl_temp/selenoid.pem;
ssl_certificate_key /etc/ssl_temp/example.com.key;
location / {
proxy_pass http://example.com:8080;
proxy_connect_timeout 70;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
location /browser {
proxy_pass http://example.com:8081;
proxy_connect_timeout 70;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
location /ws {
proxy_pass http://example.com:5900;
proxy_http_version 1.1;
proxy_set_header Connection 'upgrade';
chunked_transfer_encoding off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_buffering off;
proxy_cache off;
proxy_connect_timeout 600;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
以下是我的能力配置:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("firefox");
capabilities.setVersion("76 .0");
capabilities.setCapability("enableVNC", true);
capabilities.setCapability("enableVideo", true);
capabilities.setCapability("enableLog", true);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
RemoteWebDriver driver = new RemoteWebDriver(
URI.create("https://example.com/wd/hub").toURL(), capabilities);
以下是我的browsers.json
{
"chrome": {
"default": "86.0",
"versions": {
"86.0": {
"image": "selenoid/vnc:chrome_86.0",
"port": "4444",
"path": "/",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
}
}
},
"firefox": {
"default": "60.0",
"versions": {
"60.0": {
"image": "selenoid/vnc:firefox_60.0",
"port": "4444",
"path": "/wd/hub",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
},
"65.0": {
"image": "selenoid/vnc:firefox_65.0",
"port": "4444",
"path": "/wd/hub",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
},
"86.0": {
"image": "selenoid/vnc_firefox:86.0",
"port": "4444",
"path": "/wd/hub",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
}
}
}
}
非常感谢任何帮助。提前致谢。
location /ws { proxy_pass example.com:5900;
这也应该转到端口 8080。
我正在使用 Selenoid 进行自动化。我可以 运行 在 Selenoid 上进行测试,但是,当我单击 运行ning 浏览器会话时,我无法看到实时执行。 IE。 VNC 正在断开连接。也发生在手动会话中。
请参考控制台输出的屏幕截图:
设置:
使用Nginx 访问远程机器(CentOS) 中的Selenoid。 端口 8081 托管 selenoid,端口 8080 托管 selenoid-ui。 浏览器图像是 selenoid/vnc_firefox:86.0.
这就是我启动容器的方式
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v ${HOME}:/root -e OVERRIDE_HOME=${HOME} aerokube/cm:latest-release selenoid start --port 8081 --vnc
docker run -it --rm -d --name selenoid-ui --link selenoid --network selenoid -p 8080:8080 aerokube/selenoid-ui:latest --selenoid-uri http://examplefqdn.com:8081
docker run --name nginx6 -d -v /etc/ssl_temp:/etc/ssl_temp -p 80:80 -p 443:443 -p 8443:8443 nginx
下面是我用 Nginx.conf 试过的。
server {
listen 80;
listen 443 ssl;
listen 8443 ssl;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
server_name example.com;
ssl_certificate /etc/ssl_temp/selenoid.pem;
ssl_certificate_key /etc/ssl_temp/example.com.key;
location / {
proxy_pass http://example.com:8080;
proxy_connect_timeout 70;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
location /browser {
proxy_pass http://example.com:8081;
proxy_connect_timeout 70;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
location /ws {
proxy_pass http://example.com:5900;
proxy_http_version 1.1;
proxy_set_header Connection 'upgrade';
chunked_transfer_encoding off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_buffering off;
proxy_cache off;
proxy_connect_timeout 600;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
以下是我的能力配置:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("firefox");
capabilities.setVersion("76 .0");
capabilities.setCapability("enableVNC", true);
capabilities.setCapability("enableVideo", true);
capabilities.setCapability("enableLog", true);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
RemoteWebDriver driver = new RemoteWebDriver(
URI.create("https://example.com/wd/hub").toURL(), capabilities);
以下是我的browsers.json
{
"chrome": {
"default": "86.0",
"versions": {
"86.0": {
"image": "selenoid/vnc:chrome_86.0",
"port": "4444",
"path": "/",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
}
}
},
"firefox": {
"default": "60.0",
"versions": {
"60.0": {
"image": "selenoid/vnc:firefox_60.0",
"port": "4444",
"path": "/wd/hub",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
},
"65.0": {
"image": "selenoid/vnc:firefox_65.0",
"port": "4444",
"path": "/wd/hub",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
},
"86.0": {
"image": "selenoid/vnc_firefox:86.0",
"port": "4444",
"path": "/wd/hub",
"volumes": ["/etc/ssl_temp:/etc/ssl_temp"]
}
}
}
}
非常感谢任何帮助。提前致谢。
location /ws { proxy_pass example.com:5900;
这也应该转到端口 8080。