首页 > 解决方案 > 如何在 Selenium c# 中为 Headless Browser 处理打印对话框?

问题描述

我正在使用以下代码。

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

但是它 OpenQA.Selenium.WebDriverException: JavaScript error: Cannot read property 'shadowRoot' of null在使用无头浏览器时抛出错误:错误。谁能告诉我如何处理无头浏览器的打印对话框。

标签: headless

解决方案


推荐阅读