ヘッドレスクロームを試してみたいのですが、ヘッドレスモードでドライバーを起動できないというこの問題に直面しています。 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);
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);
あなたにとっては、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);
====
実行した後、ChromeDriver.exeファイルがないというエラーが引き続き発生する場合は、nugetを使用してSelenium.WebDriver.ChromeDriver、WebDriver.ChromeDriver、WebDriver.ChromeDriver.win32、Selenium.Chrome.WebDriverを追加してみてください。
代替として:
下の図のように、NuGetを使用して2つのライブラリを追加します。
以下のコードを試してください:
String url = "http://www.google.com";
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments(new List<string>() { "headless" });
var chromeDriverService = ChromeDriverService.CreateDefaultService();
ChromeDriver driver = new ChromeDriver(chromeDriverService, chromeOptions);
driver.Navigate().GoToUrl(url);
実行しているOS developers.google.com/web/updates/2017/04/headless-chromeで、ヘッドレスはChrome 60までWindowsで使用できないことがわかりました。
以下に、Firefoxおよびchromeブラウザーのヘッドレスをtrueに設定する方法を示しました。
FirefoxOptions ffopt = new FirefoxOptions();
FirefoxOptions option = ffopt.setHeadless(true);
WebDriver driver = new FirefoxDriver(option);
ChromeOptions coptions = new ChromeOptions();
ChromeOptions options = coptions.setHeadless(true);
WebDriver driver = new ChromeDriver(options);