How to handle print dialog in Selenium c# for Headless Browser?

Viewed 159

I am using the following code.

IJavaScriptExecutor js = (IJavaScriptExecutor)Browser.WebDriver;

js.ExecuteScript("setTimeout(function() { window.print(); }, 0);");

Browser.WebDriver.SwitchTo().Window(Browser.WebDriver.WindowHandles.Last());

 string JSPath = "document.querySelector('body>print-preview-app').shadowRoot.querySelector('#sidebar').shadowRoot.querySelector('print-preview-button-strip').shadowRoot.querySelector('cr-button.cancel-button')";

IWebElement cancelBtn = (IWebElement)js.ExecuteScript($"return {JSPath}");

cancelBtn.Click();

However it is throwing the Error: OpenQA.Selenium.WebDriverException: JavaScript error: Cannot read property 'shadowRoot' of null error when using Headless Browser. Can anyone tell me how I can handle Print dialog for headless browser.

0 Answers
Related