我正在使用带有 Firefox 节点的 Docker Selenium Grid 对 Firefox(以及其他但不相关的)运行一些自动化测试。这个网格是使用 docker-compose.yml 文件启动的 - 与 docker-selenium github repo 中的文件非常相似。为了克服证书问题和其他内部官僚作风,我需要为此节点创建一个 Firefox 配置文件,以便成功运行。这个 Firefox 节点被配置为只使用一个插槽,因此它一次只运行一个测试,这一切都很好。
但是,我真的很想并行化我的测试,以便能够更快地完成测试运行。我重新配置了 Firefox 节点以使用 4 个插槽,并更改了测试框架以相应地并行化测试。因此,我在此 Firefox 节点上按需要/预期获得了 4 个并发会话。但是我有一个问题,每个插槽都尝试使用相同的配置文件打开 Firefox 浏览器。配置文件被锁定到第一个,因此其他三个测试失败。
目前我正在指定要用作我的 DriverOptions 中的参数的配置文件:
case Browser.Firefox:
driverOptions = new FirefoxOptions();
((FirefoxOptions)driverOptions).AddArguments("-profile", "home/seluser/.mozilla/firefox/seluser_profile");
break;
当然,此时我不知道将使用哪个插槽,因此在我的 .NET 项目中指定不同的配置文件是行不通的。我认为我的解决方案必须以某种方式配置 Firefox 节点中的每个插槽以使用不同的配置文件启动 FF - 硬编码到该特定插槽。我找不到实现这一目标的方法。有没有人这样做过/有任何想法?