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

问题描述 投票:0回答:1

我目前有一个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());
            }
        }
c# visual-studio selenium selenium-chromedriver
1个回答
1
投票

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

driver = new ChromeDriver(chromeDriverService, new ChromeOptions());
© www.soinside.com 2019 - 2024. All rights reserved.