我在使用webdriver.remote(在码头容器中)连接到另一个selenium网格容器时遇到了问题。这些是我使用webdriver的docker-compose文件和python文件。
python file:
sleep(10)
Options = webdriver.ChromeOptions()
Options.add_argument('--no-sandbox')
Options.add_argument('--headless')
driver = webdriver.Remote(
command_executor= 'http://selenium-hub:4444/wd/hub',
desired_capabilities = DesiredCapabilities.CHROME,
)
docker-compose file:
version: "3"
services:
selenium-hub:
image: selenium/hub:3.14.0
container_name: selenium-hub
ports:
- "9090:4444"
chromenode:
image: selenium/node-chrome:3.14.0
depends_on:
- selenium-hub
links:
- selenium-hub:hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
flask-web:(execute python file)
image: main
container_name: template_flask
depends_on:
- selenium-hub
- chromenode
links:
- selenium-hub
- chromenode我所犯的错误:
MaxRetryError: HTTPConnectionPool(host=‘selenium’,port=4444):最大重试超过url:
我见过很多关于这个错误的讨论,但仍然无法解决。有人能给我一些提示吗?谢谢!
发布于 2022-11-18 11:40:59
听起来像是容器之间的网络问题。我建议为所有的容器创建一个网络,这样他们就可以通过使用您的docker文件中定义的服务名称来相互交谈,请参阅:
version: "3"
services:
hub:
image: selenium/hub:3
ports:
- "4444:4444"
environment:
GRID_MAX_SESSION: 16
GRID_BROWSER_TIMEOUT: 180
GRID_TIMEOUT: 60
networks:
- selenium_net
chrome:
image: selenium/node-chrome-debug:3
container_name: chrome_node
depends_on:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
NODE_MAX_SESSION: 4
NODE_MAX_INSTANCES: 4
volumes:
- /dev/shm:/dev/shm
ports:
- "9001:5900"
links:
- hub
networks:
- selenium_net
firefox:
image: selenium/node-firefox-debug:3
container_name: firefox_node
depends_on:
- hub
environment:
HUB_PORT_4444_TCP_ADDR: hub
HUB_PORT_4444_TCP_PORT: 4444
NODE_MAX_SESSION: 5
NODE_MAX_INSTANCES: 5
volumes:
- /dev/shm:/dev/shm
ports:
- "9003:5900"
links:
- hub
networks:
- selenium_net
networks:
selenium_net:
driver: bridge
name: selenium-nethttps://stackoverflow.com/questions/73251184
复制相似问题