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

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

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

自 Chrome 71 以来它运行良好.

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

但它不再有效.

有没有人想办法在 Chrome 75 的打印预览中点击取消"?

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

推荐答案

在版本 75.0.3770.142 (Official Build) (64-bit) 上测试了这个.他们现在有额外的元素

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>

用于控制台测试

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

使用 executor.executeScript

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 :: 适用于版本 79.0.3945.88(官方版本)(64 位)

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

相关文章