如何在driver.Close之后从ChromeDriver重新打开浏览器?

时间:2018-03-06 13:05:10

标签: c# visual-studio selenium selenium-chromedriver

我目前已经初始化了一个chromedriver。 这包含"控制台"和实际的" chrome浏览器"窗户。

我想调用chromedriver.Close()方法只关闭"浏览器"窗口,然后在应用程序运行时重新打开它。 我这样做是因为我已经将我的控制台设置为隐藏模式,所以当我不使用它时,我希望浏览器窗口也一样。

所有这一切都无需处理chromedriver并进行初始化。

var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
driver = new ChromeDriver(chromeDriverService, new ChromeOptions());

//closing browser windows
driver.Close();

//reopen browser window, without reinitializing driver
driver.Open(); //<--Need something that does something like this.

提前感谢您的帮助。

修改

在回答@Guy后我实现了这一点。当驱动程序为null并且没有打开选项卡时,会对其进行初始化:

        if (driver == null)
        {
            var chromeDriverService = ChromeDriverService.CreateDefaultService();
            chromeDriverService.HideCommandPromptWindow = true;
            driver = new ChromeDriver(chromeDriverService, new ChromeOptions());
        }
        else
        {
            try
            {
                var driverUrl = driver.Url;
            }
            catch
            {
                var chromeDriverService = ChromeDriverService.CreateDefaultService();
                chromeDriverService.HideCommandPromptWindow = true;
                driver = new ChromeDriver(chromeDriverService, new ChromeOptions());
            }
        }

1 个答案:

答案 0 :(得分:1)

如果是最后一次打开的窗口driver.Close()将导致driver实例丢失。你必须重新初始化它

driver = new ChromeDriver(chromeDriverService, new ChromeOptions());