我想试用 headless chrome,但我遇到了这个问题,我无法在 headless 模式下启动驱动程序。我在关注 google documentation .我错过了什么吗?代码执行卡在 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);
最佳答案
更新
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 并使用 headless 。安装后将 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);
关于c# - 如何以 headless 模式启动 ChromeDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45130993/