2015-05-14 79 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); 

參見: