我可以在浏览器运行时隐藏它吗?
我的意思是我希望用户通过[我不是机器人] 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.
答案 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);