使用配置文件并行执行 FirefoxDriver 测试共享相同的配置文件副本

2024-03-26

一段时间以来,我们一直在使用 FirefoxDriver 执行一组基于 WebDriver 2.25.0 的自动化测试。测试由基于 Maven 3.0 的构建及其 FailSafe 插件并行执行(四核机器上每个核心 2 个线程)。每个测试都有一个 @BeforeClass 方法,用于检索 FirefoxDriver 的实例并清除所有 cookie。这一切都运行良好。

由于代理身份验证发生了变化(之前没有),我们现在需要使用特定的 Firefox 配置文件来运行测试。配置文件已创建,构建现在包含 -Dwebdriver.firefox.profile= 环境变量。由于我们没有收到任何“未找到配置文件”错误,因此该配置文件似乎已被拾取。然而,似乎每个 Firefox 实例都使用相同的配置文件副本,因此共享相同的 cookie 存储:应用程序应该在用户第一次访问时提供区域选择对话框,但在运行这些测试时却不会。

Update:在不使用 -Dwebdriver.firefox.profile 变量并使用 new FirefoxDriver(new ProfilesIni().getProfile("")) 运行时,行为是相同的。

FirefoxDriver 不是创建指定配置文件的副本并使用该独立副本运行每个 Firefox 实例吗?

Thanks!


  • 如果您在实例化时不提供配置文件FirefoxDriver,然后当您运行代码时:new FirefoxDriver(...),内部创建了一个匿名配置文件C:\Users\#TheUser\AppData\Local\Temp文件夹,例如命名为anonymous1864251113973276405webdriver-profile.
  • 如果您提供的个人资料FirefoxDriver,那么行为是相同的,除了配置文件副本被命名的事实:例如userprofile6938771758695790613copy.

总之,Webdriver 总是在此创建配置文件的副本Temp即使您指定或未指定必须使用的自定义配置文件,该文件夹也会被保留。关于 cookie,每个创建的配置文件都有一个名为cookies.sqlite里面。我不能 100% 确定 cookie 是否会以某种方式干扰,但它们不应该干扰。您可以通过比较每个网络驱动程序中保存的 cookie 来进行检查,使用:

 Set<Cookie> webDriverCookies = webDriver.manage().getCookies();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用配置文件并行执行 FirefoxDriver 测试共享相同的配置文件副本 的相关文章

随机推荐