我一直在使用来自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();");
但是它不再起作用。
有人能找到一种方法来单击Chrome 75的打印预览中的“取消”吗?
我发现了异常,它只是说:
e:org.openqa.selenium.WebDriverException: unknown error: Cannot read property 'shadowRoot' of null
答案 0 :(得分:2)
在75.0.3770.142(正式版本)(64位)上进行了测试。它们现在具有其他元素
<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
executor.executeScript("document.querySelector(\"print-preview-app\").shadowRoot.querySelector(\"print-preview-sidebar\").shadowRoot.querySelector(\"print-preview-header\").shadowRoot.querySelector(\"paper-button.cancel-button\").click();")
答案 1 :(得分:1)
在Chrome 77中,“打印”对话框的html元素再次更改。 并再次在Chrome 78中进行了更改。 在我们的詹金斯上,这个版本比我笔记本电脑上的最新版本落后了几个数字,这非常令人讨厌。 (我希望他们尽快为docker容器启用该詹金斯)
对于Chrome 78.0.3904.70:
在控制台中测试:
document.querySelector("print-preview-app").shadowRoot.querySelector("print-preview-sidebar").shadowRoot.querySelector("print-preview-button-strip").shadowRoot.querySelector("cr-button.cancel-button").click()
executor.executeScript:
executor.executeScript("document.querySelector(\"print-preview-app\").shadowRoot.querySelector(\"print-preview-sidebar\").shadowRoot.querySelector(\"print-preview-button-strip\").shadowRoot.querySelector(\"cr-button.cancel-button\").click();");
答案 2 :(得分:0)
在打印弹出窗口之前运行此代码:
CREATE TRIGGER tblmaster_after_insert
AFTER INSERT
ON tblmaster FOR EACH ROW
SELECT @attempts := COUNT(*) FROM tblmaster WHERE usercode = NEW.usercode;
UPDATE tblmaster SET attempts = @attempt + 1 WHERE id = NEW.id;