量角器:如何测试 window.print()

Protractor: How to test window.print()

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

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

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

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

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

来测试 window.print 是否在 print-button 上被调用
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);

另请参阅: