当我运行selenium单元测试时Firefox崩溃

时间:2015-05-26 10:40:26

标签: c# firefox selenium jenkins selenium-webdriver

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

作为网络驱动程序,我使用FirefoxDriver。我已经安装了Firefox 38.当我尝试使用消息运行测试firefox返回异常时:

  

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();
}

2 个答案:

答案 0 :(得分:4)

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

将Firefox降级为35 link to 35.0.1)。

答案 1 :(得分:0)

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

  

未知软件异常(0x80000003)em 0x55fdec79

所以我创建了WebDriver如下:

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

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

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

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