Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 量角器:如何测试window.print()_Javascript_Selenium_Selenium Webdriver_Protractor - Fatal编程技术网

Javascript 量角器:如何测试window.print()

Javascript 量角器:如何测试window.print(),javascript,selenium,selenium-webdriver,protractor,Javascript,Selenium,Selenium Webdriver,Protractor,我正在尝试测试按钮的打印功能,如: it('print document', function(){ element(by.id('print-button')).click(); expect(window.print()); }); 我想测试“浏览器打印”对话框。如何做到这一点?浏览器的打印对话框超出了selenium的范围,它不在selenium的控制之下。仅使用量角器/硒无法可靠地解决您的问题 此外,您不需要测试浏览器以及它打开打印对话框的能力。您可以做的(未测试)是通

我正在尝试测试按钮的打印功能,如:

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

我想测试“浏览器打印”对话框。如何做到这一点?

浏览器的打印对话框超出了selenium的范围,它不在selenium的控制之下。仅使用
量角器
/
无法可靠地解决您的问题

此外,您不需要测试浏览器以及它打开打印对话框的能力。您可以做的(未测试)是通过重新定义
window.print()
(),测试是否在
print按钮上调用
window.print

另见:


您可以借助selenium中的Sikuli JAVA API。请查看我的帖子和我的答案:@nitinchawda是的,但这不是java或python,所以Sikuli可能不是最好的选择。此外,该解决方案不太可靠,因为它依赖于特定的浏览器,因此需要打印对话框的特定图像。
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);