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

Nav*_*mar 2 javascript selenium selenium-webdriver protractor

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

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

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

ale*_*cxe 6

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

此外,您无需测试浏览器,也无需打开打印对话框.您可以做的(未测试)是测试是否通过重新定义(参考)window.print调用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);
Run Code Online (Sandbox Code Playgroud)

也可以看看: