Webdriver.Quit()导致firefox停止在c#selenium automation

时间:2016-12-28 14:17:35

标签: selenium firefox selenium-webdriver

我正在使用selenium的driver.Quit()来使用C#代码关闭firefox。它正在关闭Firefox,但是说Firefox已经停止工作了。

那么使用代码退出firefox的代码或任何其他方法可能存在什么问题。请建议。

日志:

问题签名:   问题事件名称:APPCRASH   应用程序名称:firefox.exe   应用版本:50.1.0.6186   应用程序时间戳:5849ff9c   故障模块名称:mozglue.dll   故障模块版本:50.1.0.6186   故障模块时间戳:5849ff8b   例外代码:80000003   例外偏移:0000ec79   操作系统版本: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

2 个答案:

答案 0 :(得分:1)

不知道C#selenium。但是在Python中我们使用webdriver.close()并且可以使用webdriver.quit()

答案 1 :(得分:0)

这似乎是目前Selenium 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();
}