我目前有一个非常简单的Selenium Specflow框架,可以打开Chrome或Firefox浏览器。我想添加一个AfterTestRun
挂钩以退出并处理驱动程序,以便浏览器正确关闭。
LoginPage.cs:
[Binding]
public class LoginPage
{
private IWebDriver Driver { get; set; }
[Given("I open a (.*) browser with a (.*) resolution (.*)")]
public IWebDriver CreateBrowserInstance(Browser browser,BrowserResolution resolution,bool headless)
{
switch(browser)
{
case Browser.Chrome:
Driver = StaticWebDriverFactory.getchromeWebDriver(resolution,headless);
return Driver;
case Browser.Firefox:
Driver = StaticWebDriverFactory.GetFirefoxWebDriver(resolution,headless);
return Driver;
default:
throw new PlatformNotSupportedException($"{browser} is not currently supported.");
}
}
}
Hooks.cs
[Binding]
public class Hooks
{
private IWebDriver Driver { get; }
[AfterTestRun]
public void AfterTestRun()
{
Driver.Quit();
Driver.Dispose();
}
}
当我没有Hooks文件时,测试将按预期方式打开浏览器。但是,我们将其添加并运行测试,该测试被跳过。我不确定挂钩在哪里出问题了。
编辑:
我试图将[AfterScenario]
放在LoginPage.cs
文件中,并且按预期工作。
我不确定为什么我的测试钩子不能放在单独的文件中,因为所有测试/页面都将使用它们。我看错了方向吗?