2012-10-18 70 views
3

一段時間以來,我們一直在使用FirefoxDriver基於WebDriver 2.25.0執行一組自動化測試。這些測試是通過一個基於Maven 3.0的構建和它的FailSafe插件並行執行的(四核機器上每個內核有2個線程)。每個測試都有一個@BeforeClass方法,用於檢索FirefoxDriver的一個實例並清除所有的Cookie。所有這些工作正常。並行執行FirefoxDriver測試和配置文件共享相同的配置文件副本

由於代理身份驗證(以前沒有)的更改,我們現在需要使用特定的Firefox配置文件運行測試。配置文件已創建,現在構建版本包含-Dwebdriver.firefox.profile =環境變量。由於我們沒有收到任何「未找到配置文件」錯誤,因此該配置文件似乎已被提取。但是,似乎每個Firefox實例都使用相同的配置文件副本,因此共享相同的cookie存儲區:應用程序應該在用戶第一次訪問時提供區域選擇對話框,但不會在運行這些測試時提供。

更新:行爲不-Dwebdriver.firefox.profile變量運行,並使用新的FirefoxDriver時是一樣的(新ProfilesIni()getProfile( 「<PROFILENAME>」)。)。

是不是FirefoxDriver創建指定配置文件的副本並使用該獨立副本運行每個Firefox實例?

謝謝!

回答

0
  • 如果在實例FirefoxDriver您不提供個人資料,那麼當你運行該代碼:new FirefoxDriver(...),一個anonymus輪廓C:\Users\#TheUser\AppData\Local\Temp文件夾內創建,例如命名anonymous1864251113973276405webdriver-profile
  • 如果您提供FirefoxDriver的配置文件,則行爲是相同的,除了命名配置文件副本:例如userprofile6938771758695790613copy

總之,總的webdriver創建這個文件夾Temp內的配置文件的副本甚至可以指定或不具有使用自定義配置文件。關於cookies,每個創建的配置文件都有一個名爲cookies.sqlite的文件。我不是100%確定cookie是否以某種方式干涉,他們不應該。您可以通過比較保存在每個網絡驅動器中的cookie來檢查,使用:

Set<Cookie> webDriverCookies = webDriver.manage().getCookies();