Search code examples
javaseleniumselenium-webdriverselenium-chromedriver

How can I tell Selenium to press cancel on a print popup in Chrome 75?


I have been using the the suggested solution from : https://stackoverflow.com/a/41670021/4633408

And it worked perfectly since Chrome 71.

executor.executeScript("document.querySelector(\"print-preview-app\").shadowRoot.querySelector(\"print-preview-header\").shadowRoot.querySelector(\"paper-button.cancel-button\").click();");

But it no longer works.

Has anyone figured out a way to click, "Cancel" in the print preview for Chrome 75?

I caught the exception and it simply says:

 e:org.openqa.selenium.WebDriverException: unknown error: Cannot read property 'shadowRoot' of null

Solution

  • Tested this on Version 75.0.3770.142 (Official Build) (64-bit) .They have additional element now

    <print-preview-sidebar id="sidebar"></print-preview-sidebar>
    

    For testing in console

    document.querySelector("print-preview-app").shadowRoot.querySelector("print-preview-sidebar").shadowRoot.querySelector("print-preview-header").shadowRoot.querySelector("paper-button.cancel-button").click()
    

    with executor.executeScript

    executor.executeScript("document.querySelector(\"print-preview-app\").shadowRoot.querySelector(\"print-preview-sidebar\").shadowRoot.querySelector(\"print-preview-header\").shadowRoot.querySelector(\"paper-button.cancel-button\").click();")
    

    EDIT :: For Version 79.0.3945.88 (Official Build) (64-bit)

    document.querySelector("print-preview-app").shadowRoot.querySelector("print-preview-sidebar").shadowRoot.querySelector("print-preview-button-strip").shadowRoot.querySelector("cr-button.cancel-button").click()