如何在运行c#时隐藏浏览器selenium?

时间:2018-05-24 07:16:15

标签: c# selenium selenium-chromedriver

我可以在浏览器运行时隐藏它吗?

我的意思是我希望用户通过[我不是机器人] reCaptCha自己登录时!登录后,浏览器将隐藏并在后台运行!我可以吗?

 ChromeOptions option = new ChromeOptions();
 ChromeDriverService service = ChromeDriverService.CreateDefaultService();
 service.HideCommandPromptWindow = true;
 IWebDriver driver = new ChromeDriver(service,option);

 driver.Manage().Window.Maximize();
 driver.Navigate().GoToUrl("http://xxx.xxx/login");

 driver.FindElement(By.XPath("//*[@id='app']/span/div/div[2]/div/div/div[1]/div[1]/ul/li[2]/a")).Click();
 WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 5, 0));

 wait.Until(ExpectedConditions.UrlToBe("https://xxx.xxx/")); // login success and browser will hide, running in background.

2 个答案:

答案 0 :(得分:0)

我不确定你可以在启动后运行chrome headless(在运行过程中关闭并运行没有UI)。

BUT

如果您在浏览器打开的情况下登录,您可能能够达到您想要的效果,并保存您的cookie(您登录时生成的cookie),然后将它们导入新的无头驱动程序。

这样,您仍然可以使用UI登录,并准备好会话,完成浏览器UI关闭时要执行的其余操作。

看看this。它包含有关硒中Cookie处理的信息。

答案 1 :(得分:0)

我正在使用这样的代码:

IWebDriver driver;    
var chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("headless");
driver = new ChromeDriver(chromeOptions);