Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关闭[AfterScenarios]时specflow Selenium中的会话id无效_C#_Selenium_Specflow - Fatal编程技术网

C# 关闭[AfterScenarios]时specflow Selenium中的会话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() {

我正在[BeginScenario]打开浏览器会话,并在[AfterScenario]退出会话。 在第二个场景的开头,我得到了“OpenQA.Selenium.WebDriverException:”无效会话id“。 我们如何在每个场景开始时启动新会话

[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?您确定异常是由钩子类引起的吗?你能发布堆栈跟踪吗?