量角器:如何测试 window.print()
Protractor: How to test window.print()
我正在尝试测试按钮的打印功能,例如:
it('print document', function(){
element(by.id('print-button')).click();
expect(window.print());
});
我想测试浏览器打印对话框。如何做到这一点?
浏览器的打印对话框超出了 selenium 的范围,它不受 selenium 的控制。仅使用 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);
另请参阅:
- Handling Print Dialog Using Protractor
- Selenium WebDriver : Verify Print Window dialog displayed on the page
- How to handle print dialog in Selenium?
我正在尝试测试按钮的打印功能,例如:
it('print document', function(){
element(by.id('print-button')).click();
expect(window.print());
});
我想测试浏览器打印对话框。如何做到这一点?
浏览器的打印对话框超出了 selenium 的范围,它不受 selenium 的控制。仅使用 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);
另请参阅:
- Handling Print Dialog Using Protractor
- Selenium WebDriver : Verify Print Window dialog displayed on the page
- How to handle print dialog in Selenium?