Eva*_*s B 29 c# selenium selenium-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);
Run Code Online (Sandbox Code Playgroud)
Eva*_*s B 50
更新
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
}
Run Code Online (Sandbox Code Playgroud)
DATED
在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);
Run Code Online (Sandbox Code Playgroud)
对于您而言,ChromeDriver没有获得参考。使用此步骤:
从以下位置下载dll:http : //seleniumtestings.com/selenium-download/
解压缩,您应该看到:Selenium.WebDriverBackedSelenium.dll,ThoughtWorks.Selenium.Core.dll,WebDriver.dll和WebDriver.Support.dll
通过“添加参考”添加这些文件
现在您可以使用它:
String url = "http://www.google.com";
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments(new List<string>() {
"--silent-launch",
"--no-startup-window",
"no-sandbox",
"headless",});
var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true; // This is to hidden the console.
ChromeDriver driver = new ChromeDriver(chromeDriverService, chromeOptions);
driver.Navigate().GoToUrl(url);
Run Code Online (Sandbox Code Playgroud)
====
如果运行之后,仍然遇到有关没有ChromeDriver.exe文件的错误,请尝试通过nuget添加Selenium.WebDriver.ChromeDriver,WebDriver.ChromeDriver,WebDriver.ChromeDriver.win32,Selenium.Chrome.WebDriver。
归档时间: |
|
查看次数: |
31783 次 |
最近记录: |