web-dev-qa-db-fra.com

Comment démarrer ChromeDriver en mode sans tête

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);
18
Evaldas B

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);
33
Evaldas B

Pour vous, cela n’a pas été référencé pour ChromeDriver. Utilisez cette étape:

  1. Téléchargez la dll de cette page: http://seleniumtestings.com/Selenium-download/

  2. Extrait, et vous devriez voir: Selenium.WebDriverBackedSelenium.dll, ThoughtWorks.Selenium.Core.dll, WebDriver.dll et WebDriver.Support.dll

  3. 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.

3
Haryono

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);
    

 Selenium Chrome WebDriver

2
Haryono

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. 

0
Kapil