如何告诉 Selenium 在 Chrome 75 的打印弹出窗口中按下取消?

Jam*_*ken 1 java selenium selenium-chromedriver selenium-webdriver

我一直在使用以下建议的解决方案:https : //stackoverflow.com/a/41670021/4633408

自 Chrome 71 以来,它运行良好。

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

但它不再起作用了。

有没有人想出一种在 Chrome 75 的打印预览中单击“取消”的方法?

我发现了异常,它只是说:

 e:org.openqa.selenium.WebDriverException: unknown error: Cannot read property 'shadowRoot' of null
Run Code Online (Sandbox Code Playgroud)

Rah*_*l L 7

在 75.0.3770.142 (Official Build) (64-bit) 版本上对此进行了测试。他们现在有额外的元素

<print-preview-sidebar id="sidebar"></print-preview-sidebar>
Run Code Online (Sandbox Code Playgroud)

用于在控制台中测试

document.querySelector("print-preview-app").shadowRoot.querySelector("print-preview-sidebar").shadowRoot.querySelector("print-preview-header").shadowRoot.querySelector("paper-button.cancel-button").click()
Run Code Online (Sandbox Code Playgroud)

使用 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();")
Run Code Online (Sandbox Code Playgroud)

编辑:: 对于版本79.0.3945.88(官方版本)(64 位)

document.querySelector("print-preview-app").shadowRoot.querySelector("print-preview-sidebar").shadowRoot.querySelector("print-preview-button-strip").shadowRoot.querySelector("cr-button.cancel-button").click()
Run Code Online (Sandbox Code Playgroud)