selenium - 通过 docker compose 设置 selenium 浏览器版本

标签 selenium docker selenium-webdriver docker-compose selenium-grid

我正在通过 docker compose 运行 selenium 网格,并通过我想要的功能定位不同的版本。

我需要测试多个浏览器版本,但是目前我需要针对完整版本,即 chrome 版本“63.0.3239.132”或“64.0.3282.140”

我希望能够仅指定 63 或 64 等,以便我的 docker 设置可以定期更新而无需更新代码。

有没有办法通过所需的功能来做到这一点?

下面是我的 docker compose 文件

version: '2'

services:

  seleniumhub:
      image: selenium/hub:3.9.1-actinium
    ports:
      - 4444:4444

  chrome64:
     image: selenium/node-chrome-debug:3.9.1-actinium
     depends_on:
       - seleniumhub
     environment:
       HUB_PORT_4444_TCP_ADDR: seleniumhub
       HUB_PORT_4444_TCP_PORT: 4444
     ports:
       - 5900

  chrome63:
     image: selenium/node-chrome-debug:3.8.1-erbium
     depends_on:
       - seleniumhub
     environment:
       HUB_PORT_4444_TCP_ADDR: seleniumhub
       HUB_PORT_4444_TCP_PORT: 4444
     ports:
       - 5900

下面是我如何设置我想要的功能。
ICapabilities caps = new DesiredCapabilities();

//generic Desktop Browser config':
if (DriverConfig.BrowserName != "")
{ ((DesiredCapabilities)caps).SetCapability("browserName", _browserName); }
else
{ }
if (DriverConfig.Version != "")
{ ((DesiredCapabilities)caps).SetCapability("version", _version); }
else
{ }
if (DriverConfig.Platform != "")
{ ((DesiredCapabilities)caps).SetCapability("platform", _platform); }
else
{ }

最佳答案

如果您指定 -browser browserName="chrome,version=63"在将 selenium 节点注册到 sellenium hub 时的 cmd 行中,可以指定 browerVersion: 63在测试脚本的功能中。

所以你的问题取决于你有机会指定-browser使用 docker setup grid 时在注册表 cmd 中?

关于selenium - 通过 docker compose 设置 selenium 浏览器版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48704879/

相关文章:

java - 如果在单个窗口中打开多个选项卡,getWindowHandles 返回一个窗口句柄

python - 将 Apache Superset 与 Docker 一起使用时缺少 MapBox token

python - 在 PyCharm CE 中使用 Selenium

java - 如何在没有地址栏的情况下获取浏览器窗口大小Java?

python - 尝试通过 Chromedriver 2.34、Selenium 3.8 和 Python 3.6.2 登录 Wells Fargo 时出错

python - 使用 selenium Python 检索 Google 趋势数据中的所有元素

selenium - 通过 HTTPS 的 PhantomJS

java - Docker depends_on 命令不工作

docker - docker 命名卷存储在哪里?

java - 使用构建器模式和 Selenium 通过不同的条件组合执行不同的搜索