问题标签 [selenium-docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
38 浏览

docker - 如何在容器中运行我的本地应用程序

我已经在本地构建了我的应用程序并且可以在本地访问。'http://localhost:4200/admin/login' 之类的东西可以正常工作。

我有我想在硒网格环境中执行的自动化套件。所以我创建了一个集线器和节点,它们是相互连接的。

当我运行任何全球应用程序(如 google.com 等)时,这些站点可以在 selenium 节点容器中访问,并且它们工作正常。

但是当我运行指向本地的套件时,它们并没有在节点容器中执行。如何在 Node 容器中访问本地部署的应用程序?

我使用 'docker run -d -p 4545:4444 --name selenium-hub selenium/hub' 启动了我的集线器

并将我的节点启动为 'docker run -d -P --link selenium-hub:hub selenium/node-chrome-debug'

0 投票
0 回答
642 浏览

selenium-webdriver - 尝试使用 selenium docker chrome 节点运行 selenium WebDriver 脚本时无法访问此站点错误

我正在尝试使用 selenium docker chrome 节点在 docker 上运行 selenium 测试。我们在 Windows 7 上运行它。由于 docker 不支持 Windows 7,我们使用 vagrant 创建 linux box,然后在 linux box 上使用 docker 运行 selenium hub 和 selenium node/chrome。

当我尝试使用以下代码运行 selenium 脚本时,出现“无法访问此站点”错误。但是 chrome 会话成功创建并且驱动程序启动了网站。但是该站点显示错误为“无法访问此站点”

我的公司正在使用代理服务器。我还在 vagrant vm box 和 docker 容器中设置了代理设置。因此,当我在 linux box 和 docker selenium 容器上使用“curl www.google.com”时,我成功地得到了响应。

当我可以在容器和 linux 机器上成功启动网站时,我不确定为什么通过 selenium WebDriver 启动网站时没有呈现网站。

我尝试使用如下代理设置启动 WebDriver,但出现相同的错误

0 投票
0 回答
265 浏览

selenium - 我需要在离线模式下运行standalone-chrome-debug

我有一个 linux 服务器,没有连接到 github(它在我们的办公室被阻止),并且需要运行standalone-chrome-debug docker image。所以在我这边,我克隆 repo 并将其传输到 linux 机器,但是当我运行 docker 命令时: docker run -d -p 4444:4444 -p 0:5900 -v /dev/shm:/dev/shm -e VNC_NO_PASSWORD=1 硒/独立铬调试

我遇到了很多错误,例如找不到entry_point.sh,以及丢失文件的不同类似问题,所以我的问题是:

如果我在本地有存储库,并且无法访问 github,如何让这个 docker 成功运行,你能帮我解决这个问题吗?

0 投票
1 回答
63 浏览

selenium - Python中的dockerized Selenium是一个资源匮乏的过程吗?

我在一个旧线程中读到 dockerized selenium 网格是一个资源匮乏的过程。

我正在尝试并行运行 250 到 300 个硒测试,经过一些研究,我发现我有 3 个选项:

1:多线程 2:多处理 3:在 docker 容器中运行 selenium 脚本

但是后来我读到多线程并没有真正并行执行 i/o吗?

所以我把注意力转移到了dockerized selenium 脚本上。

那么一个简单的 dockerized selenium 脚本会消耗多少资源呢?脚本的 selenium 部分非常简单,它接收3 到 5 个值,然后在网页上输入这些值,然后单击一个按钮。

具有4 个 cpu 核心的24 gb ram是否足以满足上述过程?

0 投票
1 回答
74 浏览

python - 使用 docker python SDk 创建多个容器失败

我正在使用 python docker SDK 创建多个 chrome 容器。下面是我的脚本 这里首先我拉取 docker 镜像,然后尝试创建 2 个容器。但它失败并显示端口已在使用中的错误消息,但我正在根据容器计数增加端口值。

- - - 跑 - - - - -

- - - 错误 - - -

0 投票
1 回答
515 浏览

node.js - Selenium docker 视频不能通过 network_mode 作为 docker-compose 中的主机工作

在 docker-compose 文件中,我设置包含 chrome-standalone 图像和另一个节点(名为 test)作为测试运行程序。Cloudbuild.yaml 文件触发测试并且它工作。

这是 docker-compose 文件:

我无法添加硒录像机服务。

添加network_mode:host作为chrome_video的参数不起作用。他们没有得到对方的 ping。

chrome_video容器初始化后,它的日志文件:

如果我如下编辑 docker-composer,我会在预期目录中录制视频,但似乎测试无法到达:

上面的 docker-compose 文件运行时出错:

测试_1 | 1) 端到端测试 test_1 | 的初步步骤 登录:test_1 | 错误:ECONNREFUSED 连接 ECONNREFUSED 127.0.0.1:4444 test_1 | 在客户端请求。(node_modules/selenium-webdriver/http/index.js:273:15) test_1
| 在 ClientRequest.emit (node:events:394:28) test_1 |
在 Socket.socketErrorListener (node:_http_client:447:9) test_1
| 在 Socket.emit (node:events:394:28) test_1 | 在 emitErrorNT (node:internal/streams/destroy:157:8) test_1 |
在 emitErrorCloseNT (node:internal/streams/destroy:122:3) test_1
| 在 processTicksAndRejections (node:internal/process/task_queues:83:21) test_1 | 测试_1
| 2) 端到端测试 test_1 | 的初步步骤
“登录”的“每个之后”挂钩:test_1 | 错误:ECONNREFUSED 连接 ECONNREFUSED 127.0.0.1:4444 test_1 |
在客户端请求。(node_modules/selenium-webdriver/http/index.js:273:15) test_1
| 在 ClientRequest.emit (node:events:394:28) test_1 |
在 Socket.socketErrorListener (node:_http_client:447:9) test_1
| 在 Socket.emit (node:events:394:28) test_1 | 在 emitErrorNT (node:internal/streams/destroy:157:8) test_1 |
在 emitErrorCloseNT (node:internal/streams/destroy:122:3) test_1
| 在 processTicksAndRejections (节点:internal/process/task_queues:83:21)

顺便说一句,所有容器都在同一个网络中(公共网络的名称是e2e-tests_default):

e2e-tests % docker network inspect e2e-tests_default -f "{{json .Containers }}" {"26858f4ebf7cda76aaa100c8f3db8df14c319a6e3d4c54f839202affde72ad11":{"Name":"e2e-tests_chrome_video_1","EndpointID":"8d3beeb215b524e573db0d6f9a001c04ba9a77823b42e10f45160868af16bd4b","MacAddress":" 02:42:c0:a8:70:04","IPv4Address":"192.168.112.4/20","IPv6Address":""},"972490a8a2e94adc1cb2e73daf5c0b206a89e483330e3d736fef0eca6cd5b170":{"Name","s_EndpointID-test ":"abce602dc1c22ab21b760b50aeca2a77de07304c2c7cc224a7164078f8af56bd","MacAddress":"02:42:c0:a8:70:03","IPv4Address":"192.168.112.3/20","IPv6Address":""},"9ed9962e468cba1cd0fdfe1511fc23c931fd2f0dbf6d95bdb3009809ca097939":{"Name":"e2e-tests_selenium_1",​​"EndpointID":"448b560b932501edb66204f492af8edc38a1bd5ec0c19eb217b6d51ebf48aab0","MacAddress":"02:42:c0:a8:70:02","IPv4Address":"192.168.112.2/20 ","IPv6 地址":""}}

有没有办法为此设置启用视频录制?

提前致谢。

0 投票
1 回答
168 浏览

selenium - 测试运行器节点看不到 selenium-hub。出现错误:ECONNREFUSED 连接 ECONNREFUSED 127.0.0.1:4444

简而言之,有一个额外的容器作为无法到达 selenium-hub 的测试运行器。因此,测试失败。

添加此容器以使用云构建在云上运行测试。

我创建了 docker-compose 如下:

容器开始成功运行后,当我npm run test运行 selenium js 测试时,我在预期目录中获得了成功的结果和视频录制。但它也应该是自动化的。npm run test应该以某种方式触发。

在我们的 CI/CD 过程中,添加了 cloudbuild.yaml 文件以便在云上运行。

云构建应该触发下面的新容器,该容器作为测试运行器添加到 docker-compose 文件中:

但是对于测试容器,测试失败并出现以下错误:

容器:

我可以从e2e-tests_test_1容器 ping selenuim -hub,但不能反向执行(从selenium-hub ping e2e-tests_test_1)。

关于当前网络:

似乎测试节点无法到达127.0.0.1:4444

我应该怎么做才能解决这个问题?很高兴听到替代解决方案。

提前致谢。

0 投票
1 回答
52 浏览

selenium-webdriver - 如何在 docker-compose 中使用 selenium

我只想用selenium-docker打开驱动,但由于某种原因无法连接到主机

我的存储库:

https://github.com/ribeirosaimon/selenium_teste

<< 我需要等待浏览器,谢谢!>>

0 投票
1 回答
931 浏览

selenium-webdriver - Selenium 网格 4:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败错误

尝试使用以下 docker-compose 文件设置 selenium 4 网格,但出现“无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败”错误,需要一些帮助来解决相同的问题.

码头工人撰写文件:

运行命令:

这将通过 testing.xml 文件中提到的测试运行器触发一个黄瓜测试场景的执行。

看起来设置已经完成了,这里的日志:

在运行一项测试时完成错误日志:

或者,当我尝试打开集线器 url 时,我得到以下信息: 在此处输入图像描述

这就是调用远程驱动程序对象的方式。

笔记本电脑配置:Mac m1 512GB

我怎么可能摆脱这个问题?

0 投票
1 回答
139 浏览

r - RSelenium findElement 适用于 firefox:2.53.1 但不适用于 firefox:latest

我像这样使用 docker 运行 Selenium:

docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.1

以下 R 脚本中的这一行remDr$findElement(using = "class", "percent")工作正常。

我杀死那个容器并做:docker run -d -p 4445:4444 selenium/standalone-firefox:latest

然后再次运行相同的代码。这会导致错误:

为什么是这样?如何让我的旧代码与最新版本的 Firefox 一起使用。我需要更新的版本才能使其他一些事情起作用。

我还看到 linux 进程的名称从“firefox”更改为“Gecko”。