gpt4 book ai didi

selenium - selenium 在 docker 中运行时出现连接拒绝错误

转载 作者:行者123 更新时间:2023-12-02 21:21:08 25 4
gpt4 key购买 nike

在尝试使用 selenium docker 图像“selenium/standalone”进行 nto dockerise selenium End2End 测试时,出现错误:从 selenium 服务器检索新 session 时出错连接被拒绝! Selenium 服务器启动了吗?ye selenium 服务器根据控制台输出启动..有什么想法吗?

FROM selenium/standalone-chrome
USER root
# installing node
RUN apt-get update
RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_7.x | bash
RUN apt-get install -y nodejs
RUN node -v
RUN npm -v
# Installing Yarn
#RUN rm -r /usr/local/bin/yarn
RUN npm install -g -y yarn
ENV PATH $PATH:/usr/local/bin/yarn
#copying files
WORKDIR /app
COPY . .
# debug
RUN ls -alh .
#installing yarn
RUN yarn install
EXPOSE 4444
RUN yarn
CMD yarn test

最佳答案

问题在于您解决此问题的方法。看到您从 selenium/standalone-chrome 继承图像,它应该运行 Selenium 浏览器。现在是您要添加测试并指定 CMD 以运行测试的图像。

当您构建并启动此图像时,您不会获得任何浏览器,因为 CMD 已被您覆盖以运行测试。当我们在 docker 中构建时,我们将依赖服务保存在不同的容器中。在大多数情况下,最好为每个容器运行 1 个服务/进程。在您的情况下,当运行测试时,浏览器服务器进程丢失,因此这就是连接被拒绝的原因。

所以你需要在这里运行两个容器。一个用于 selenium/standalone-chrome,一个用于您的测试。

此外,您的图像应该继承自节点:而不是 Selenium Chrome 图像。在构建图像时,您不应该同时使用 node -vnpm -v 命令。它们会在您的最终图像中创建额外的图层

FROM node:7
USER root
# installing node
RUN apt-get update && apt-get install -y curl
# Installing Yarn
RUN npm install -g -y yarn
ENV PATH $PATH:/usr/local/bin/yarn
#copying files
WORKDIR /app
COPY . .
# debug
#installing yarn
RUN yarn install
RUN yarn
CMD yarn test

现在您需要创建一个 docker-compose 文件来运行一个包含您的测试和 chrome 的组合

version: '3'
services:
chrome:
image: selenium/standalone-chrome
tests:
build: .
depends_on:
- chrome

安装docker-compose 并运行docker-compose up 命令来运行上面的组合。此外,在您的测试中,请确保将 URL 用作 http://chrome:4444/wd/hub 并使用 Remote webdriver 而不是本地驱动程序。

关于selenium - selenium 在 docker 中运行时出现连接拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45343363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com