我目前有一个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());
}
}
如果它是最后打开的窗口,driver.Close()
将导致driver
实例的丢失。你必须重新初始化它
driver = new ChromeDriver(chromeDriverService, new ChromeOptions());