Автоматизируйте функцию «Печать» с помощью селена - PullRequest
0 голосов
/ 26 мая 2019

Я должен автоматизировать экран «Печать» с помощью «Java» и «Selenium». Но я не могу нажать ни кнопку «Отмена», ни «Печать».

void print() {

          driver.switchTo().window(driver.getWindowHandles().stream().
          filter(handle 
          -> !handle.equals(driver.getWindowHandle())).findAny().get());

           WebElement printPreviewApp = 
           driver.findElement(By.xpath("//print- 
           preview-app"));

           WebElement printPreviewAppContent = (WebElement) 
           ((JavascriptExecutor) driver).executeScript("return 
           arguments[0].shadowRoot", printPreviewApp);

           WebElement printPreviewHeader = 
           printPreviewAppContent.findElement(By.cssSelector("print- 
           preview-header"));

           WebElement printPreviewHeaderContent = (WebElement) 
           ((JavascriptExecutor) driver).executeScript("return 
           arguments[0].shadowRoot", printPreviewHeader);

           WebElement cancelButton = 
           printPreviewHeaderContent.findElement(By.cssSelector("paper- 
           button[class*=cancel]"));
           cancelButton.click();
}

также я попробовал следующий код,

void print() {

      WebElement print_button = driver.findElement(By.cssSelector("..."));

     // click on the print button and wait for print to be called
     driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);
     ((JavascriptExecutor)driver).executeAsyncScript(
         "var callback = arguments[1];" +
         "window.print = function(){callback();};" +
         "arguments[0].click();"
         , print_button);
}

Я ожидаю нажатия кнопок «Печать» и «Отмена». Но, это не нажатие на кнопки Пример экрана печати

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...