javascript - Protractor :如何测试 window.print()

标签 javascript selenium selenium-webdriver protractor

我正在尝试测试按钮的打印功能,例如:

it('print document', function(){
    element(by.id('print-button')).click();
    expect(window.print());
});

我想测试浏览器打印对话框。如何做到这一点?

最佳答案

浏览器的打印对话框超出了 selenium 的范围,它不受 selenium 的控制。仅使用 protractor/selenium 无法可靠地解决您的问题。

此外,您无需测试浏览器及其打开打印对话框的能力。您可以做的(未测试)是通过重新定义 window.print() 来测试 window.print 是否在 print-button 上被调用> ( reference ):

browser.setScriptTimeout(10);

var printButton = element(by.id('print-button'));

var result = browser.executeAsyncScript(function (elm, callback) {
    function listener() {
        callback(true);
    }

    window.print = listener;
    elm.click();
}, printButton.getWebElement());

expect(result).toBe(true);

另见:

关于javascript - Protractor :如何测试 window.print(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232284/

相关文章:

python-3.x - WebDriverException : Message: TypeError: rect is undefined

java - 在 Headless Chrome 中打开 GWT 应用程序不起作用

javascript - 如何通过单击jquery中的删除按钮来删除显示表中的行

javascript - 如何将ajax结果放入动态添加的容器中?

javascript - boost::asio 是否支持 websockets?

java - 是否可以通过链接文本获取xpath?

java - 在java selenium中启动chromedriver后更改代理

javascript - Web Worker 在 HTML5 Canvas 处理中内存不足

python - 使用 python 在已打开的对话框中选择一个文件

javascript - NightwatchJS : How to check if attribute is not present?