Search code examples
firefoxselenium-webdrivermozilla

How to pass jsconsole argument in firefox to launch browser console?


I would like to open **Browser Console** for my session every time I launch Firefox. 

Browser : Firefox  v 61 

How can you launch Browser Console for firefox:
1. open firefox (and give any URL )
2. Press Ctrl+Shift+J (or Cmd+Shift+J on a Mac) 

Link : https://developer.mozilla.org/en-US/docs/Tools/Browser_Console


else if (browser.Equals(Constant.Firefox))
 {
     var profileManager = new FirefoxProfileManager();
     FirefoxProfile profile = profileManager.GetProfile("ConsoleLogs");
     FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(DrivePath);
     service.FirefoxBinaryPath = DrivePath;
     profile.SetPreference("security.sandbox.content.level", 5);
     profile.SetPreference("dom.webnotifications.enabled", false);
     profile.AcceptUntrustedCertificates = true;              
     FirefoxOptions options = new FirefoxOptions();                
     options.AcceptInsecureCertificates = true;
     options.Profile = profile;
     options.SetPreference("browser.popups.showPopupBlocker", false);
     driver = new FirefoxDriver(service.FirefoxBinaryPath, options, TimeSpan.FromSeconds(100));
     driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);            
 }

I have tried to create a bat file and give it to my code but this batch file creating a new - separate session of Firefox browser, this is not what I want, I want to launch Browser Console for current session for my automation.

cd C:\Program Files\Mozilla Firefox 
firefox -jsconsole
pause

code for this :

 Process p = new Process();
 p.StartInfo.FileName = @"C:\Users\Com\Desktop\batch\FirefoxConsole.bat";
 p.Start();
 Thread.Sleep(2000);

what I am looking for now : I would like to pass "-jsconsole " in my Selenium Firefox profile if I can.

C:\Program Files\Mozilla Firefox>firefox.exe -jsconsole

and I do not know how to do it.


Solution

  • we just need to add this line in code where we initialing Firefox 
    
    options.AddArgument("--jsconsole");
    
    else if (browser.Equals(Constant.Firefox))
     {
         var profileManager = new FirefoxProfileManager();
         FirefoxProfile profile = profileManager.GetProfile("ConsoleLogs");
         FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(DrivePath);
         service.FirefoxBinaryPath = DrivePath;
         profile.SetPreference("security.sandbox.content.level", 5);
         profile.SetPreference("dom.webnotifications.enabled", false);
         profile.AcceptUntrustedCertificates = true;              
         FirefoxOptions options = new FirefoxOptions();
         **options.AddArgument("--jsconsole");**                
         options.AcceptInsecureCertificates = true;
         options.Profile = profile;
         options.SetPreference("browser.popups.showPopupBlocker", false);
         driver = new FirefoxDriver(service.FirefoxBinaryPath, options, TimeSpan.FromSeconds(100));
         driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);            
     }