我正在尝试测试按钮的打印功能,例如:
it('print document', function(){
element(by.id('print-button')).click();
expect(window.print());
});
我想测试浏览器打印对话框。如何做到这一点?
最佳答案
浏览器的打印对话框超出了 selenium 的范围,它不受 selenium 的控制。仅使用 protractor
/selenium
无法可靠地解决您的问题。
此外,您无需测试浏览器及其打开打印对话框的能力。您可以做的(未测试)是通过重新定义 window.print()
来测试 window.print
是否在 print-button
上被调用> ( reference ):
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);
另见:
关于javascript - Protractor :如何测试 window.print(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232284/