我试图测试按钮的打印功能,例如:
it('print document', function(){
element(by.id('print-button')).click();
expect(window.print());
});
我想测试浏览器打印对话框。怎么做?
答案 0 :(得分:6)
浏览器的打印对话框超出了selenium的范围,它不受selenium的控制。仅使用protractor
/ selenium
无法可靠地解决您的问题。
此外,您无需测试浏览器,也无需打开打印对话框。您可以执行的操作(未经测试)是通过重新定义window.print
(reference)来测试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);
另见: