如何解决Selenium.WebDriverException:消息:未知错误:net :: ERR_NAME_NOT_RESOLVED
我正在尝试在docker中使用最新的Selenium Hub,并尝试在docker中运行pytests或不使用它进行调试。 我根据官方文档设置了硒。 我为docker compose使用了3个版本:https://github.com/SeleniumHQ/docker-selenium/blob/trunk/docker-compose-v3.yml
还可以进行健康检查:
{
"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","stereotypes": [
{
"capabilities": {
"browserName": "firefox"
},"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"}}'}
Chrome浏览器的版本为85.0.4183.83 我在conftest.py中启动浏览器:
browser = webdriver.Remote(
command_executor=f"http://{os.environ['SE_EVENT_BUS_HOST']}:4444/wd/hub",desired_capabilities={
'browserName': browser_name
}
)
我试图在那里设置localhost以及selenium-hub。 在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中运行pytest时,我看不到集线器。尝试通过selenium-hub和localhost检查:
我的wait.for-it.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"
在那里尝试卷曲:localhost,硒集线器。
以前,我使用的是环境HUB_HOST = hub。对于在docker中运行测试来说,这对我有用,但是对于从docker中运行测试,我也遇到了相同的错误ERR_NAME_NOT_RESOLVED。
解决方法
请也尝试使用mode:global
运行docker selenium hub,而不要使用hub
尝试使用HUB_HOST=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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。