You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中Django配合Selenium Grid 4运行自动化测试失败求助

问题根因

你的报错是两个配置错位导致的:

  • Django的LiveServerTestCase默认仅监听容器内部的127.0.0.1地址,Chrome节点容器的请求无法到达测试服务
  • 测试代码中默认访问的localhost指向Chrome容器自身,而非运行Django的myapp容器
修复步骤

1. 调整测试服务配置

修改environment.py中的环境变量配置:

# 让测试服务监听所有网络接口,使用未被占用的8081端口避免和常驻服务冲突
os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS'] = '0.0.0.0:8081'
# 指定测试服务对外可访问的主机名,和docker-compose中myapp的服务名保持一致
os.environ['DJANGO_LIVE_TEST_SERVER_HOST'] = 'myapp'

如果你的测试代码中有硬编码的localhost:8000地址,全部替换为http://myapp:8081。

2. 补充Chrome启动参数

在Chrome选项中添加无沙箱参数,避免容器环境下的权限问题:

chrome_options.add_argument("--no-sandbox")

3. 验证网络连通性

执行以下命令进入Chrome节点容器,测试网络连通性:

docker exec -it chrome-worker curl http://myapp:8081

如果返回正常的页面内容,说明网络配置生效。

可选调试配置

如果需要查看浏览器的实时运行过程,在docker-compose.yml的chrome服务配置中添加端口映射:

ports:
  - "7900:7900"

重启服务后访问本地http://localhost:7900,输入默认密码secret即可查看浏览器运行画面。

内容的提问来源于stack exchange,提问作者Marlone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:24:05