一段时间以来,我们一直在使用 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(使用前将#替换为@)