我想尝试无头镀铬,但是遇到了这个问题,我无法以无头模式启动驱动程序。我正在关注google文档。我错过了什么吗?该代码执行陷在var browser = new ChromeDriver();线路
var browser = new ChromeDriver();
这是我的代码:
var chromeOptions = new ChromeOptions { BinaryLocation = @"C:\Users\2-as Aukstas\Documents\Visual Studio 2017\Projects\ChromeTest\ChromeTest\bin\Debug\chromedriver.exe", DebuggerAddress = "localhost:9222" }; chromeOptions.AddArguments(new List<string>() {"headless", "disable-gpu" }); var browser = new ChromeDriver(chromeOptions); browser.Navigate().GoToUrl("https://stackoverflow.com/"); Console.WriteLine(browser.FindElement(By.CssSelector("#h-top-questions")).Text);
UPDATE Chrome版本60已经发布,因此您所需要做的就是通过Nuget下载Chromdriver和Selenium并使用此简单代码,一切都像个魅力。惊人。
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; ... var chromeOptions = new ChromeOptions(); chromeOptions.AddArguments("headless"); using (var browser = new ChromeDriver(chromeOptions)) { // add your code here }
日期
在正式发布Chrome 60之前,有一个解决方案。您可以下载Chrome Canary并使用它。安装完成后,将BinaryLocation设置为指向chrome canary,还注释掉DebuggerAddress行(它强制chrome超时):
var chromeOptions = new ChromeOptions { BinaryLocation = @"C:\Users\2-as Aukstas\AppData\Local\Google\Chrome SxS\Application\chrome.exe", //DebuggerAddress = "127.0.0.1:9222" }; chromeOptions.AddArguments(new List<string>() { "no-sandbox", "headless", "disable-gpu" }); var _driver = new ChromeDriver(chromeOptions);