我正在使用C#编写两个程序,并且我正在使用通过NuGet安装在这两个程序中的参考资料:
代码语言:javascript复制其中一个程序的代码只是用一个默认配置文件和一个自己的扩展名打开Google Chrome浏览器,它导航到一个页面并执行一些操作。另一个程序搜索打开的浏览器并执行操作。当这两个程序运行时,会出现一个控制台窗口(它似乎属于chromedriver.exe),然后浏览器打开。当程序结束时,控制台窗口保持打开状态。第二个程序会运行很多次。我的问题是,每次程序结束时,控制台窗口都保持打开状态。
可以说,我尝试了一些方法来了解它的行为:如果我手动关闭浏览器,控制台窗口将保持打开状态,但如果我手动关闭控制台窗口,而不是浏览器,浏览器将关闭。这清楚地表明控制台窗口必须对浏览器打开并保持打开状态。我也尝试过使用driver.Quit()和driver.Close()。第一个关闭浏览器和控制台窗口,第二个只关闭浏览器。
我的想法是在计算机开机时运行第一个程序,并根据需要多次从另一台计算机运行第二个程序。但我不希望控制台窗口在每次运行时都保持打开状态。有没有办法让这个控制台窗口打不开?
我的第一个程序的代码是下面的:
代码语言:javascript复制ChromeOptions options = new ChromeOptions(); options.AddExtension("[Path]"); options.AddArgument("--remote-debugging-port= [PortNumber]"); options.AddArgument("--user-data-dir=[Path]");IWebDriver driver = new ChromeDriver(options); driver.Navigate().GoToUrl("http://www.google.es");第二个程序是这样的:
代码语言:javascript复制ChromeOptions options = new ChromeOptions(); options.DebuggerAddress = "localhost:[PortNumber]";IWebDriver driver = new ChromeDriver(options); driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);IWebElement element; element = driver.FindElement(By.ClassName("[ClassnName]")); element.Click();