Search code examples
c#selenium-webdriverselenium-chromedriverheadless

Selenium ChromeDriver doesn't Navigate with --headless in console application c#


Good day to all! I have a problem using Selenium ChromeDriver in console application, i use code like this:

var options = new ChromeOptions();
options.AddArgument("--headless");
options.AddArgument("--no-sandbox");
options.AddArgument(@"user-data-dir=G:\Data\ProfilesData\Profile1");

var driverService = ChromeDriverService.CreateDefaultService(Directory.GetCurrentDirectory());
driverService.HideCommandPromptWindow = true;

WebDriver driver = new ChromeDriver(driverService, options);
driver.Navigate().GoToUrl(URL);

Please help me understand so that the browser goes to the desired URL in the console application

I tried to remove the --headless parameter, the browser starts and goes to the desired page, this process does not work without visualization


Solution

  • I found a solution to this problem in a blog post on the official website. Now you need to use option --headless=new, not --headless. The working code looks like this:

    var options = new ChromeOptions();
    options.AddArgument("--headless=new");
    options.AddArgument("--no-sandbox");
    options.AddArgument(@"user-data-dir=G:\Data\ProfilesData\Profile1");
    
    var driverService = ChromeDriverService.CreateDefaultService(Directory.GetCurrentDirectory());
    driverService.HideCommandPromptWindow = true;
    
    WebDriver driver = new ChromeDriver(driverService, options);
    driver.Navigate().GoToUrl(URL);