Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firefox via GeckoDriver throws exception on .Quit() in Selenium 3.0.1

Context: Firefox 50.0.2 64bit, C#, Visual Studio 2015, Windows Server 2012 R2, Azure, ClearScript.V8.5.4.7, Selenium.Mozilla.Firefox.Webdriver.0.6.0.1, Selenium.WebDriver.GeckoDriver.Win64.0.11.1

I'm using ClearScript to wrap the Selenium objects for use in JavaScript, viz

    static JScriptEngine JSengine = null;
    ...
    JSengine = new JScriptEngine(WindowsScriptEngineFlags.EnableDebugging | WindowsScriptEngineFlags.EnableJITDebugging);
    ...
    JSengine.AddHostType("CSFirefoxDriver", typeof(FirefoxDriver));
    JSengine.AddHostType("CSFirefoxOptions", typeof(FirefoxOptions));
    JSengine.AddHostType("CSFirefoxDriverService", typeof(FirefoxDriverService));

I instantiate Firefox using the following JS

var driverService = CSFirefoxDriverService.CreateDefaultService();
driverService.FirefoxBinaryPath = "C:\\Program Files\\Mozilla Firefox\\firefox.exe";
driverService.HideCommandPromptWindow = true;
driverService.SuppressInitialDiagnosticInformation = true;
var options = new CSFirefoxOptions();
driver = new CSFirefoxDriver(driverService, options, CSTimeSpan.FromSeconds(30));

The matching Quit/Dispose code is

try {
  driver.Quit();
} catch (E) {
  T.Error().Send("driver.Quit() failed.");
}

try {
  driver.Dispose();
} catch (E) {
  T.Error().Send("driver.Dispose() failed.");
}

(T is a logging object)

When the .Quit() method call is executed, I get the following dialog.

Demonstration of crash

If I comment out the the .Quit() then I get the same on the .Dispose().

Other forums have suggested turning off hardware acceleration in Firefox's preferences. This has not made any difference at all.

There is also an issue on the geckodriver forum about this claiming a fix of some sort. It's certainly not fixed now.

Windows Event Log isn't particularly helpful here, viz

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
        <Provider Name="Application Popup" Guid="{47BFA2B7-BD54-4FAC-B70B-29021084CA8F}" /> 
        <EventID>26</EventID> 
        <Version>0</Version> 
        <Level>4</Level> 
        <Task>0</Task> 
        <Opcode>0</Opcode> 
        <Keywords>0x8000000000000000</Keywords> 
        <TimeCreated SystemTime="2016-12-13T03:16:28.936810900Z" /> 
        <EventRecordID>1227958</EventRecordID> 
        <Correlation /> 
        <Execution ProcessID="5856" ThreadID="11580" /> 
        <Channel>System</Channel> 
        <Computer>VM1-SQLWEB-W12</Computer> 
        <Security UserID="S-1-5-18" /> 
    </System>
    <EventData>
        <Data Name="Caption">firefox.exe - Application Error</Data> 
        <Data Name="Message">The exception Breakpoint A breakpoint has been reached. (0x80000003) occurred in the application at location 0x880f00ef. Click on OK to terminate the program Click on CANCEL to debug the program</Data> 
    </EventData>
</Event>

Where do I go from here? I can fall back to PhantomJS until a fix is found.

like image 573
bugmagnet Avatar asked Dec 13 '16 03:12

bugmagnet


People also ask

How do I close Firefox in Selenium?

WebDriver webdriver; ProfilesIni profile = new ProfilesIni(); FirefoxProfile myprofile = profile. getProfile("myProfileName"); webdriver = new FirefoxDriver(myprofile); Now webdriver. quit(); will close the firefox browser after the test has run.

How do I open Firefox browser with GeckoDriver in Selenium?

Step 1: Navigate to the official Selenium website. Under third-party drivers, one will find all the drivers. Just click on the Mozilla GeckoDriver documentation as shown below. Now, it will navigate to the GeckoDriver downloads link, where one can download the suitable driver based on the OS as it is platform agnostic.

Which Firefox browser needs GeckoDriver in Selenium?

Gecko driver works with Firefox version 47 or above. It can be resolved by updating Firefox version to 47 or above.

Which version of Firefox is compatible with Selenium?

FireFox was fully supported only in previous versions i.e. v47 and earlier. Selenium WebDriver version 2.53 is not compatible with Mozilla FireFox version 47.0+. After v47. 0, FireFox is provided with GeckoDriver.


2 Answers

I had the same problem, I found that someone posted it here. For now you can downgrade to Firefox 48.0.2 until it is fixed.

like image 162
mosaad Avatar answered Oct 16 '22 15:10

mosaad


Problem appears only on windows 8.1 (I checked on win7 & wind10 and it's works properly). So you should upgrade your OS or downgrade browser.

like image 24
madSound Avatar answered Oct 16 '22 13:10

madSound