运行 selenium 单元测试时 Firefox 崩溃
Firefox crash when I run selenium unit test
我开始使用 Selenium.WebDriver (v2.45) 到 运行 视觉测试。
我使用 FirefoxDriver
作为 Web 驱动程序。我已经安装了 Firefox 38。当我尝试 运行 测试 firefox return 异常消息时:
FF has stopped working.
有人有什么建议吗?它在上周有效,我的测试是否可能因更新而崩溃?
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 (link to 35.0.1)。
我有一个建议。
当我调用 WebDriver 的 Quit() 方法时出现以下错误。
unknown software exception (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 来关闭主 window:
try { ((IJavaScriptExecutor)driver).ExecuteScript("window.close();"); } catch { }
所以现在我可以调用 Quit() 而不会出现任何错误。我知道这是一种解决方法,但我认为这可以帮助您。
我开始使用 Selenium.WebDriver (v2.45) 到 运行 视觉测试。
我使用 FirefoxDriver
作为 Web 驱动程序。我已经安装了 Firefox 38。当我尝试 运行 测试 firefox return 异常消息时:
FF has stopped working.
有人有什么建议吗?它在上周有效,我的测试是否可能因更新而崩溃?
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 (link to 35.0.1)。
我有一个建议。 当我调用 WebDriver 的 Quit() 方法时出现以下错误。
unknown software exception (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 来关闭主 window:
try { ((IJavaScriptExecutor)driver).ExecuteScript("window.close();"); } catch { }
所以现在我可以调用 Quit() 而不会出现任何错误。我知道这是一种解决方法,但我认为这可以帮助您。