當我創建Firefox Web驅動程序的實例時,它會成功打開Firefox。但是,它會打開兩個選項卡(一個「常規」Firefox選項卡和一個IE選項卡; IE選項卡處於活動狀態並在測試期間保持活動狀態,除非我手動切換到測試實際正在執行的選項卡)。在Firefox中運行Selenium測試會創建兩個選項卡並在「非活動」選項卡中運行
它將運行在Firefox標籤測試(即,非活動狀態)。
我實例化我的Firefox網絡驅動程序是這樣的:
var firefoxOptions = new FirefoxOptions()
{
Profile = new FirefoxProfile(),
UseLegacyImplementation = false,
BrowserExecutableLocation = @"C:\Program Files (x86)\Mozilla Firefox\Firefox.exe"
};
firefoxDriver = new FirefoxDriver(firefoxOptions);
firefoxDriver.Manage().Timeouts().ImplicitWait = new TimeSpan(0, 0, 10);
我會包括單元測試代碼,太多,但我之前的初始化運行任何測試過程中出現的問題。
而且,當我做清理工作是這樣的:
[TestCleanup]
public void Cleanup()
{
if (firefoxDriver != null)
{
firefoxDriver.Close();
firefoxDriver.Dispose();
}
}
它關閉,測試是在(Firefox的標籤)上運行的標籤。但是,它只有關閉該選項卡 - IE選項卡和瀏覽器都保持打開狀態。
This question似乎有點相關,但行爲有所不同,因爲Selenium並未嘗試在兩個選項卡中實際執行測試 - 它只使用一個選項卡。另外,OP中使用的是Firefox 20.0,我使用的是Firefox 52.2.0。
使用'firefoxDriver.Quit();'代替'firefoxDriver.Close();'來終止瀏覽器。 –
@FlorentB。由於一些奇怪的原因,我不明白,'firefoxDriver.Quit()'似乎沒有任何作用。它不會拋出任何異常或類似的東西。調用'firefoxDriver.Close()'兩次,但它似乎是一個愚蠢的黑客掩蓋了實際的問題。 – EJoshuaS