c# - 如何以 headless 模式启动 ChromeDriver

标签 c# selenium selenium-chromedriver

我想试用 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/

相关文章:

c# - F#(或 C#)中的任何 R-Tree 实现?

c# - 显示数据集中的数据?

Python Selenium 异常 AttributeError : "' Service' object has no attribute 'process' "in selenium. webdriver.ie.service.Service

java - 如何让selenium webdriver脚本等待后端api请求返回响应?

python-3.x - 使用 Python 和 Chromedriver 进行 Internet 异常处理的 Selenium 丢失

selenium - 使用Selenium ChromeDriver时Electron无法访问用户数据目录

python - 检查元素单击的 if 语句不会被拦截(Python Selenium)

c# - 在 C# 中实现 DISPID_VALUE 并从 C++ 中调用它

c# - 使用 pdfStamper 多次通过可减少文件大小

Python selenium 防止网站被阻塞