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

时间:2015-05-14 08:02:31

标签: javascript selenium selenium-webdriver protractor

我试图测试按钮的打印功能,例如:

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

我想测试浏览器打印对话框。怎么做?

1 个答案:

答案 0 :(得分:6)

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

此外,您无需测试浏览器,也无需打开打印对话框。您可以执行的操作(未经测试)是通过重新定义window.printreference)来测试print-button点击是否window.print()

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

另见: