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