当我运行seleniumunit testing时Firefox崩溃

我开始使用Selenium.WebDriver(v2.45)来运行可视化测试。

作为网络驱动程序,我使用FirefoxDriver 。 我安装了Firefox 38.当我尝试运行test firefox返回exception时带有消息:

FF已停止工作。

有没有人有什么建议? 它在上周工作,我的测试是否有可能被更新崩溃?

 Problem signature: Problem Event Name: APPCRASH Application Name: Firefox.exe Application Version: 38.0.1.5611 Application Timestamp: 55540a1a Fault Module Name: xul.dll Fault Module Version: 38.0.1.5611 Fault Module Timestamp: 55541969 Exception Code: c0000005 Exception Offset: 0035669b OS Version: 6.3.9600.2.0.0.16.7 Locale ID: 1033 Additional Information 1: 5861 Additional Information 2: 5861822e1919d7c014bbb064c64908b2 Additional Information 3: a10f Additional Information 4: a10ff7d2bb2516fdc753f9c34fc3b069 

有我的测试方法体:

 [Fact] public void ShouldLoginForTestAccount() { var driver = new FirefoxDriver(); driver.Manage().Cookies.DeleteAllCookies(); driver.Navigate().GoToUrl(LoginPage); driver.FindElementById("Login") .SendKeys("correctLogin"); driver.FindElementById("Password") .SendKeys("correctPassword"); driver.FindElementByTagName("button") .Click(); Assert.Equal(TestingProjectUrl, driver.Url); driver.Close(); } 

由于兼容性问题,Selenium 2.45无法与Firefox 38一起使用。

将Firefox降级到35 ( 链接到35.0.1 )。

我有个建议。 当我调用WebDriver的Quit()方法时,我收到了错误。

未知软件exception(0x80000003)em 0x55fdec79

所以我创建了WebDriver如下:

 FirefoxOptions foxOptions = new FirefoxOptions(); foxOptions.SetPreference("dom.allow_scripts_to_close_windows", true); driver = new ThreadLocal(() => { return new FirefoxDriver(service as FirefoxDriverService, foxOptions, new TimeSpan(0, 1, 0)); }).Value; 

然后,在调用Quit()方法之前,我执行一个javascript来关闭主窗口:

 try { ((IJavaScriptExecutor)driver).ExecuteScript("window.close();"); } catch { } 

所以现在我可以调用Quit()而不会出现任何错误。 我知道这是一种解决方法,但我认为这可以帮到你。