2016-12-28 70 views
1

我使用硒的driver.Quit()關閉使用C#代碼的Firefox。它正在關閉Firefox,但說Firefox停止工作。Webdriver.Quit()導致Firefox停止工作在C#硒自動化

那麼,用代碼或其他任何方式使用代碼退出firefox可能存在問題。請建議。

日誌:

問題簽名: 問題事件名稱:APPCRASH 應用名稱:firefox.exe 應用程序版本:50.1.0.6186 應用程序時間戳:5849ff9c 故障模塊名稱:mozglue.dll 故障模塊版本:50.1.0.6186 故障模塊時間戳:5849ff8b 異常代碼:80000003 異常偏移:0000ec79 OS版本:6.1.7601.2.1.0.256.48 區域設置ID:1033 附加信息1:0a9e 其他信息2:0a9e372d3b4ad19135b953a78882e789 附加信息3:0a9e 其他信息4:0a9e372d3b4ad19135b953a78882e789

在線閱讀我們的隱私聲明: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

如果在線隱私聲明無法使用,請閱讀我們的隱私聲明離線: C:\ WINDOWS \ SYSTEM32 \ EN-US \ erofflps.txt

感謝, LOKESH

+0

嗨,您的Selenium版本是什麼? –

+0

我使用Selenium版本3.0。 –

回答

1

不知道C#硒。但是在Python我們使用webdriver.close(),並且可以使用webdriver.quit()

0

這似乎是目前硒3.0的已知問題:https://github.com/mozilla/geckodriver/issues/173

如果您確實需要在使用Firefox你測試,你總是可以結束這個過程而不是退出。我不一定會推薦這種方法,但在問題正式解決之前,這可能是避免崩潰窗口的最佳選擇:

string sProcessName = "firefox"; 

if (oBrowser.Capabilities.BrowserName == sProcessName) { 
    // Special fix for firefox because of issue https://github.com/mozilla/geckodriver/issues/173 
    // Kills all firefox processes 

    Process[] oProccesses = null; 
    bool bFound = true; 

    while (bFound == true) { 
     bFound = false; 
     oProccesses = System.Diagnostics.Process.GetProcessesByName(sProcessName); 

     foreach (Process oCurrentProcess in oProccesses) { 
      bFound = true; 
      oCurrentProcess.Kill(); 
     } 
    } 
} else { 
    // Close browser properly 

    oBrowser.Quit(); 
}