【问题标题】:Codeception - Accessing localhost using Dockerized WebdriverCodeception - 使用 Dockerized Webdriver 访问 localhost
【发布时间】:2022-01-08 19:44:52
【问题描述】:

我目前遇到了这个问题:

                                                                                                                                       
  [Facebook\WebDriver\Exception\UnknownErrorException] unknown error: net::ERR_CONNECTION_REFUSED
  (Session info: chrome=96.0.4664.45)  
                                              

我想要做的是我的 dockerized webdriver,它位于 localhost:4444 访问 localhost:7070,它包含通过 OpenShift CLI 端口转发的服务之一,并且可以使用任何浏览器在本地访问。 ``

我使用以下命令运行 dockerized webdriver:

docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.1.0-20211123

这里是环境变量:

modules:
  config:
      WebDriver:
          url: http://localhost:4444
          browser: chrome
          capabilities:
              chromeOptions:
                  args: ["no-sandbox", "--disable-gpu"]

这是步骤定义:

    public function access7070Site() {
        $this->acceptanceTester -> amOnUrl('http://localhost:7070');
    }

当我尝试访问外部站点时,webdriver 可以访问它,但是,当我访问其他本地主机端口时,它会出现连接被拒绝的问题。我还缺少其他东西吗?

【问题讨论】:

标签: docker selenium webdriver codeception


【解决方案1】:

如果你想用 docker 运行它,我建议使用docker-compose 这样做。

这是一个有效的docker-compose.yaml,它与 selenium 并行使用您的项目,并负责容器之间的网络:

---
version: '3.4'

services:
  php:
    build: .
    depends_on:
      - selenium
    volumes:
      - ./:/usr/src/app:rw,cached

  selenium:
    image: selenium/standalone-chrome:4
    shm_size: 2gb
    container_name: selenium
    ports:
      - "4444:4444"
      - "7900:7900"
    environment:
      - VNC_NO_PASSWORD=1
      - SCREEN_WIDTH=1920
      - SCREEN_HEIGHT=1080

创建此文件后,您可以简单地运行 docker-compose up -d 来启动容器并输入以下内容来启动您的 webdriver 测试:

docker-compose exec php vendor/bin/codecept run

还有一个不错的功能是,您可以通过 VNC 连接 selenium 容器并查看测试实际在做什么:http://localhost:7900/

【讨论】:

    猜你喜欢
    • 2015-12-11
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多