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