#c# #selenium #printing #popupwindow
#c# #селен #печать #всплывающее окно
Вопрос:
Я работаю над проектом автоматизации тестирования. Мне нужно нажать на кнопку печати (за этой печатью стоит функциональная цель), чтобы при нажатии на кнопку отображалось всплывающее окно печати. Я хочу нажать кнопку отмены в этом всплывающем окне или просто закрыть его. Я работаю с selenium C #, а браузер — Firefox (браузер по умолчанию) Я попробовал этот метод :
public void ClosePrintPopup()
{
IJavaScriptExecutor jse = (IJavaScriptExecutor)m_WebDriver;
jse.ExecuteScript("setTimeout(function() { window.print(); }, 0);");
m_WebDriver.SwitchTo().Window(m_WebDriver.WindowHandles.Last());
Thread.Sleep(2000);
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)jse.ExecuteScript($"return {JSPath}");
cancelBtn.Click();
}
и у меня есть это исключение
Message:
--- Exception: OpenQA.Selenium.WebDriverException
--- Method: SP_AutomateRenew::TC_Subscription2 ------------
--- Message: TypeError: document.querySelector(...) is null
--- Source: WebDriver
Комментарии:
1. Сообщение об ошибке понятно. Данный элемент
body>print-preview-app
равен null. Убедитесь, что такой элемент есть.