Selenoid:如何在browser.json中为chromium驱动配置自定义主机名
Selenoid browsers.json配置hosts不生效解决方案
问题根因
Selenoid官方browsers.json配置规范中不存在hosts配置字段,你自行添加的该属性不会被Selenoid识别加载,因此浏览器容器不会继承对应的host映射规则。
可行解决方案
方案1:在docker-compose配置中全局添加host映射
所有Selenoid启动的浏览器容器都会继承Selenoid服务本身的extra_hosts配置,直接修改你的docker-compose.yml文件:services: selenoid: image: aerokube/selenoid:latest-release volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "./selenoid/config:/etc/selenoid" ports: - "4444:4444" # 新增以下配置 extra_hosts: - "myfrontend:172.20.176.10"修改完成后重启Selenoid服务即可生效:
docker-compose up -d --force-recreate selenoid方案2:测试会话维度指定host映射
如果仅需要给特定测试用例配置host,可以在初始化WebDriver时通过selenoid:options能力参数传递hosts配置,Python示例代码如下:from selenium import webdriver capabilities = { "browserName": "chrome", "version": "94.0", "selenoid:options": { "hosts": ["myfrontend:172.20.176.10"] } } driver = webdriver.Remote( command_executor="http://你的Selenoid服务地址:4444/wd/hub", desired_capabilities=capabilities )方案3:同Docker网络内直接使用服务名访问
如果你的myfrontend服务和Selenoid部署在同一个docker-compose集群下,只要确认两个服务加入了同一个Docker网络,直接用myfrontend作为主机名即可访问,无需额外配置hosts。
内容的提问来源于stack exchange,提问作者Dániel Kis
相关产品推荐
相关产品推荐

