Docker Selenium.WebDriverException:消息:未知错误:net::ERR\u NAME\u未解析

Docker Selenium.WebDriverException:消息:未知错误:net::ERR\u NAME\u未解析,docker,selenium,selenium-webdriver,docker-compose,pytest,Docker,Selenium,Selenium Webdriver,Docker Compose,Pytest,我正在尝试在docker中使用最新的selenium hub,并尝试在docker中运行pytests,或者不使用它进行调试。 我根据官方文件设置了selenium。 我使用了docker compose的3个版本: 集装箱开工良好: 健康检查也可以: { "value": { "ready": true, "message": "Selenium Grid ready.", "

我正在尝试在docker中使用最新的selenium hub,并尝试在docker中运行pytests,或者不使用它进行调试。 我根据官方文件设置了selenium。 我使用了docker compose的3个版本:

集装箱开工良好:

健康检查也可以:

{
  "value": {
    "ready": true,
    "message": "Selenium Grid ready.",
    "nodes": [
      {
        "id": "9b050c95-76e1-4ed3-be7e-a320630fdf1e",
        "uri": "http:\u002f\u002f192.168.32.4:5555",
        "maxSessions": 8,
        "stereotypes": [
          {
            "capabilities": {
              "browserName": "chrome"
            },
            "count": 8
          }
        ],
        "sessions": [
        ]
      },
      {
        "id": "d4e6d3a1-140d-41c9-b9c6-38fd5b6677b5",
        "uri": "http:\u002f\u002f192.168.32.5:5555",
        "maxSessions": 8,
        "stereotypes": [
          {
            "capabilities": {
              "browserName": "firefox"
            },
            "count": 8
          }
        ],
        "sessions": [
        ]
      }
    ]
  }
}
我试图在localhost:4444上通过pycharm(不在docker中)启动测试,并收到下一个错误:

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7fe353e9c0d0>
response = {'status': 500, 'value': '{"value":{"error":"unknown error","message":"unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=85.0.4183.83)","stacktrace":"#0 0x56398a84caa9 \\u003Cunknown>\\n"}}'}

我尝试在那里设置localhost和seleniumhub。 在docker compose中,我还添加了pytests部分,以尝试在docker中设置测试:

  pytests:
    container_name: selenium_pytests
    #    network_mode: host
    command: /bin/sleep infinity
    build: .
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
    volumes:
      - ./reports:/opt/app/reports
在docker中运行pytests时,我没有看到hub。正在尝试通过selenium hub和localhost进行检查:

我的等待。sh:

#!/bin/bash
# wait-for-grid.sh

set -e

cmd="$@"

while ! curl -sSL "http://selenium-hub:4444/wd/hub/status" 2>&1 \
        | jq -r '.value.ready' 2>&1 | grep "true" >/dev/null; do
    echo 'Waiting for the Grid'
    sleep 1
done

>&2 echo "Selenium Grid is up - executing tests"
在那里尝试了curl:localhost、selenium hub


以前我使用的是环境HUB\u HOST=HUB。这对我在docker中运行测试很有效,但我在docker中运行测试时遇到了相同的错误ERR_NAME_NOT_。请尝试使用
模式:全局运行docker selenium hub,而不是使用
hub
尝试使用
hub\u主机=selenium hub
一次

图表对我有用

version: "3.6"
services:
  selenium-hub:
    restart: always
    image: selenium/hub:3.14.0
    container_name: selenium-hub
    ports:
      - "4444:4444"

 chrome:
    restart: always
    image: selenium/node-chrome-debug:3.14.0
    ports:
      - "5900-5999:5900"
    depends_on:
      - selenium-hub
    environment:
      HUB_HOST: selenium-hub
      HUB_PORT_4444_TCP_ADDR: selenium-hub
      HUB_PORT_4444_TCP_PORT: 4444
      DBUS_SESSION_BUS_ADDRESS: "/dev/null"
    links:
      - selenium-hub:hub
version: "3.6"
services:
  selenium-hub:
    restart: always
    image: selenium/hub:3.14.0
    container_name: selenium-hub
    ports:
      - "4444:4444"

 chrome:
    restart: always
    image: selenium/node-chrome-debug:3.14.0
    ports:
      - "5900-5999:5900"
    depends_on:
      - selenium-hub
    environment:
      HUB_HOST: selenium-hub
      HUB_PORT_4444_TCP_ADDR: selenium-hub
      HUB_PORT_4444_TCP_PORT: 4444
      DBUS_SESSION_BUS_ADDRESS: "/dev/null"
    links:
      - selenium-hub:hub