2016-12-28 73 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(); 
}