python - 在 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 的新手,所以我可能忘记了一些东西。
解决方案
您正在传递本地 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)
推荐阅读
- python - 如何处理“Model.fit_generator is deprecated”错误
- python - KeyError:“['id''x_center''y_center'] 不在索引中”
- c - 结构中变量的动态分配
- javascript - 在 ReactJS/GatsbyJS 中使用外部脚本中的函数
- xcode - 我无法在 XCode (Chip M1) React 本机应用程序中构建
- php - mysqli_result 类的对象无法转换为数字(PHP | MySQL)
- javascript - 使用子组件更新父状态
- quarkus - 使用 Quarkus/Mutiny 在反应式 REST GET 端点中调度 CompletionStage / CompletableFuture API 服务
- sql - 如何在 Django 中使用原始 sql 检查 request.user
- python - 尝试在函数中使用 mysql 连接器