You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello Chrome Community,
I hope this message finds you well. I am currently working on a Selenium automation project where I am using ChromeDriver to interact with the Chrome browser. One specific requirement I have is to enable the "Preserve Log" option in the Chrome Developer Tools Console via Selenium.
So basically, I want that when I launch the driver, it automatically have Preserve Logs - console settings enabled.
I want to ensure that the entire test execution's console logs are captured and saved when the Chrome driver is launched. This means that even if I navigate to different pages during the test, the logs should not be cleared. At the end of the test, I should be able to access and review the complete set of logs for the entire test run.
I have tried various approaches, including using the AddUserProfilePreference method in ChromeOptions and executing JavaScript through IJavaScriptExecutor. Despite my attempts, I have not been successful in programmatically enabling "Preserve Log" in the Console tab.
Here is a snippet of the code I am currently using:
private static IWebDriver GetChromeDriver(string userAgent)
{
var options = new ChromeOptions();
//options.AddArgument("incognito");
options.AddArguments("disable-infobars");
// options.AddArguments("--headless");
//Session 0 limit - 1024 x 768
options.AddArguments("--window-size=1024,768");
options.AddArguments("--window-position=0,0");
options.AddArgument($"--user-agent= {userAgent}");
options.SetLoggingPreference(LogType.Browser, LogLevel.All);
//To disable PDF viewer plugins
options.AddUserProfilePreference("plugins.always_open_pdf_externally", true);
options.AddExtension(@"C:\Users\PalakS\Downloads\ezyZip - Copy.crx");
// Disable download bubble and download bubble v2 using command-line switch - For Auto Download
options.AddArgument("--disable-features=DownloadBubble");
options.AddArgument("--disable-features=DownloadBubbleV2");
options.AddArgument("--disable-backgrounding-occluded-windows");
var driver = new ChromeDriver(Directory.GetCurrentDirectory(), options, TimeSpan.FromMinutes(3));
var devToolsSession = driver.GetDevToolsSession();
IDevTools devTools = driver as IDevTools;
DevToolsSession session = devTools.GetDevToolsSession();
// Enable the Page domain
var enablePageCommandSettings1 = new OpenQA.Selenium.DevTools.V119.Page.EnableCommandSettings();
session.SendCommand(enablePageCommandSettings1);
// Enable the Console domain
var enableConsoleCommand = new OpenQA.Selenium.DevTools.V119.Console.EnableCommandSettings();
session.SendCommand(enableConsoleCommand);
// Create the script to preserve console logs
string script = "console.preserveLog();";
// Inject the script into every new document
session.SendCommand(new OpenQA.Selenium.DevTools.V119.Page.AddScriptToEvaluateOnNewDocumentCommandSettings()
{
Source = script
});
// Inject the script into every new document
session.SendCommand(new OpenQA.Selenium.DevTools.V119.Page.AddScriptToEvaluateOnLoadCommandSettings()
{
ScriptSource = script
});
return driver;
}
Unfortunately, the above approaches haven't yielded the desired results, and the "Preserve Log" option in the Console tab remains unchecked.
I would greatly appreciate any guidance, insights, or alternative approaches that the community might have in achieving this. If there's a specific preference, command-line argument, or technique that I might be overlooking, please let me know.
Thank you in advance for your time and assistance!
Environment Details:
Hello Chrome Community,
I hope this message finds you well. I am currently working on a Selenium automation project where I am using ChromeDriver to interact with the Chrome browser. One specific requirement I have is to enable the "Preserve Log" option in the Chrome Developer Tools Console via Selenium.
So basically, I want that when I launch the driver, it automatically have Preserve Logs - console settings enabled.
I want to ensure that the entire test execution's console logs are captured and saved when the Chrome driver is launched. This means that even if I navigate to different pages during the test, the logs should not be cleared. At the end of the test, I should be able to access and review the complete set of logs for the entire test run.
I have tried various approaches, including using the AddUserProfilePreference method in ChromeOptions and executing JavaScript through IJavaScriptExecutor. Despite my attempts, I have not been successful in programmatically enabling "Preserve Log" in the Console tab.
Here is a snippet of the code I am currently using:
Unfortunately, the above approaches haven't yielded the desired results, and the "Preserve Log" option in the Console tab remains unchecked.
I would greatly appreciate any guidance, insights, or alternative approaches that the community might have in achieving this. If there's a specific preference, command-line argument, or technique that I might be overlooking, please let me know.
Thank you in advance for your time and assistance!
Environment Details:
The text was updated successfully, but these errors were encountered: