Je veux essayer le chrome sans tête, mais le problème est que je ne peux pas démarrer le pilote en mode sans tête. Je suivais documentation google . est-ce que je manque quelque chose? L'exécution du code est bloquée dans la ligne var browser = new ChromeDriver();
Voici mon code:
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);
METTRE &AGRAVE; JOUR
La version 60 de Chrome étant sortie, tout ce que vous avez à faire est de télécharger Chromdriver et Selenium via Nuget et d'utiliser ce code simple, et tout fonctionne à merveille. Incroyable.
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("headless");
using (var browser = new ChromeDriver(chromeOptions))
{
// add your code here
}
DAT&EACUTE;
Il existe une solution jusqu'à la sortie officielle de Chrome 60. Vous pouvez télécharger Chrome Canary et utiliser sans tête avec celui-ci. Après l'installation, définissez BinaryLocation pour pointer sur chrome canary et commentez également la ligne DebuggerAddress (elle force l'expiration de 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);
Pour vous, cela n’a pas été référencé pour ChromeDriver. Utilisez cette étape:
Téléchargez la dll de cette page: http://seleniumtestings.com/Selenium-download/
Extrait, et vous devriez voir: Selenium.WebDriverBackedSelenium.dll, ThoughtWorks.Selenium.Core.dll, WebDriver.dll et WebDriver.Support.dll
Ajouter ces fichiers via "Ajouter une référence"
Maintenant vous pouvez l'utiliser:
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);
====
Si, après exécution, vous rencontrez toujours une erreur liée à l'absence de fichier ChromeDriver.exe, essayez d'ajouter le pilote Selenium.WebDriver.ChromeDriver, WebDriver.ChromeDriver, WebDriver.ChromeDriver.win32, Selenium.Chrome.WebDriver via nuget.
Comme alternative:
Ajoutez 2 bibliothèques via NuGet comme ci-dessous.
Essayez ci-dessous Code:
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);
Quel OS que vous utilisez? Je vois sur developers.google.com/web/updates/2017/04/headless-chrome que sans tête ne sera pas disponible sous Windows avant Chrome 60.