C# 关闭[AfterScenarios]时specflow Selenium中的会话id无效
我正在[BeginScenario]打开浏览器会话,并在[AfterScenario]退出会话。 在第二个场景的开头,我得到了“OpenQA.Selenium.WebDriverException:”无效会话id“。 我们如何在每个场景开始时启动新会话C# 关闭[AfterScenarios]时specflow Selenium中的会话id无效,c#,selenium,specflow,C#,Selenium,Specflow,我正在[BeginScenario]打开浏览器会话,并在[AfterScenario]退出会话。 在第二个场景的开头,我得到了“OpenQA.Selenium.WebDriverException:”无效会话id“。 我们如何在每个场景开始时启动新会话 [Binding] public class BasePage { public static IWebDriver driver; public static void BrowserSetup() {
[Binding]
public class BasePage
{
public static IWebDriver driver;
public static void BrowserSetup()
{
driver = new ChromeDriver();
//driver.Manage().Cookies.DeleteAllCookies();
driver.Manage().Window.Maximize();
}
}
[Binding]
public class Hook : BasePage
{
[BeforeScenario]
public void Initialize(ScenarioContext scenarioContext)
{
BrowserSetup(); // Initialise the driver from BaseClass
scenario = featureName.CreateNode<Scenario>(scenarioContext.ScenarioInfo.Title);
//scenario = featureName.CreateNode<Scenario>(scenarioContext.ScenarioInfo.Title);
}
[AfterScenario]
public void CleanUp(ScenarioContext scenarioContext)
{
if (scenarioContext.TestError != null)
{
TakeScreenshot(driver);
}
//driver.Close();
driver.Quit();
}
}
[绑定]
公共类基页
{
公共静态IWebDriver;
公共静态无效浏览器设置()
{
驱动程序=新的ChromeDriver();
//driver.Manage().Cookies.DeleteAllCookies();
driver.Manage().Window.Maximize();
}
}
[有约束力]
公共类钩子:BasePage
{
[场景之前]
公共void初始化(ScenarioContext ScenarioContext)
{
BrowserSetup();//从基类初始化驱动程序
场景=featureName.CreateNode(scenarioContext.ScenarioInfo.Title);
//场景=featureName.CreateNode(scenarioContext.ScenarioInfo.Title);
}
[赛后]
公共空间清理(ScenarioContext ScenarioContext)
{
if(scenarioContext.TestError!=null)
{
截图(司机);
}
//driver.Close();
driver.Quit();
}
}
您是否并行运行测试?否。单个浏览器。每次从登录页面开始一个新的场景时,旧的会话数据都会被保留,并且测试失败。因此,在每个场景之前,我都试图关闭浏览器会话。使用quit(),会话将关闭,但不会在BeforeCasenario中打开新会话。->浏览器设置();您使用的是哪个版本的Chrome和ChromeDriver?您确定异常是由钩子类引起的吗?你能发布堆栈跟踪吗?