2015-05-14 118 views
2

我试图测试按钮的打印功能,如:量角器:如何测试window.print()

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

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

+0

你可以在硒的Sikuli JAVA API的帮助下。请检查这个我的帖子,也是我的答案:http://stackoverflow.com/questions/23213535/how-to-test-print-preview-of-chrome-browser-using-chrome-webdriver –

+0

@nitinchawda是的,但这不是java或python,所以Sikuli可能不是最好的选择。此外,该解决方案将不太可靠,因为它取决于特定的浏览器,因此是打印对话框的特定图像。 – alecxe

回答

5

浏览器的打印对话框超出了硒的范围,它不在硒的控制下。只有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); 

参见: