首页 > 解决方案 > 在 Docker 中运行 selenium 测试

问题描述

我编写了一个 selenium 脚本,当我使用 cmd 启动它时工作正常。

我现在想在 docker 中执行脚本,以便一键从任何机器上轻松启动它。

我使用基础镜像写了一个 DockerfileFROM selenium/standalone-chrome-debug

我像这样更改了我的脚本:

driver = webdriver.Remote("http://127.0.0.1:4444/wd/hub", DesiredCapabilities.CHROME)
driver.maximize_window()
driver.get("www.google.com")

但是当我启动它时,出现以下错误:

urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=4444): Max retries exceeded with url: /wd/hub/session (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd11b9e3b90>: Failed to establish a new connection: [Errno 111] Connection refused',))

我是 docker 和 selenium 的新手,所以我可能忘记了一些东西。

标签: pythonseleniumdocker

解决方案


您正在传递本地 IP 和本地端口号

http://127.0.0.1:4444 - 你的 IP 是本地和本地端口

您需要确定您的 selenium hub dockerip以及port在同一 VM 上运行的集线器并更新以下行:

driver = webdriver.Remote("http://127.0.0.1:4444/wd/hub", DesiredCapabilities.CHROME)

推荐阅读