baz*_*a92 2 selenium-grid docker docker-compose testcafe
我想在使用硒网格docker镜像(selenium / standalone-chrome-debug)的远程计算机上安装的浏览器中运行testcafe测试。
我可以使用以下命令从本地计算机在此远程浏览器中执行testcafe测试:
SELENIUM_SERVER=http://<remote machine IP>:4444/wd/hub testcafe selenium:chrome tests/
当我使用VNC连接到机器/ docker容器时,我可以看到测试正在执行并在浏览器中预览它们。一切正常。
问题是,当我尝试使用docker从本地计算机执行测试而不是使用上述命令时。这是我的docker-compose.yml文件:
my-app:
image: my-app:0.1
ports:
- "3000:3000"
auit:
build:
context: .
dockerfile: Dockerfile.auit.testcafe
ports:
- "1337:1337"
- "1338:1338"
shm_size: 2G
environment:
- SELENIUM_SERVER=http://<remote machine IP>:4444/wd/hub
depends_on:
- my-app
entrypoint: ["/opt/testcafe/docker/testcafe-docker.sh", "selenium:chrome", "/tests"]
Run Code Online (Sandbox Code Playgroud)
内容Dockerfile.auit.testcafe:
FROM testcafe/testcafe
WORKDIR /
USER root
COPY ./tests /tests
RUN npm install testcafe-browser-provider-selenium
Run Code Online (Sandbox Code Playgroud)
因此,当我运行时:
docker-compose up auit
Run Code Online (Sandbox Code Playgroud)
该浏览器在我的Selenium网格中启动,但是它试图连接到我本地Docker容器而不是我的机器的IP。我试图使用--hostname参数设置本地计算机的IP,但是收到错误消息:
ERROR The specified "<my IP>" hostname cannot be resolved to the current machine.
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
小智 5
Selenium服务器可以通过主机名而不是IP访问本地计算机吗?如果是这样,请尝试以下方法。
将extra_hosts参数添加到docker-compose.yml
auit:
extra_hosts:
- "my-hostname:127.0.0.1"
Run Code Online (Sandbox Code Playgroud)
my-hostnameSelenium Grid可见的本地计算机的主机名在哪里。
然后--hostname像使用IP一样在TestCafe的参数中指定此主机名。
但是,如果仅使用IP代替主机名,则将需要更多的精力来实现(如果可能的话)。
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |