0

如何使用(JavaScript 和/或)FirefoxDriver 测试该window.print()方法是否被覆盖?

可以像这样禁用页面上的所有打印按钮:

window.print = function() { alert("Bazinga") }

有了这个正常的“打印”链接,如下面的链接不再起作用:

<a onclick="window.print()">....</a>

我需要检查window.print()调用是否执行原始打印对话框。

也许可以将一些 JavaScript 注入到 FirefoxWebdriver 中?

4

2 回答 2

3

由于 window.print 是本机函数,您可以:

if( window.print.toString().indexOf('[native code]') > -1 ) {
 //native
}
于 2012-09-26T13:32:59.863 回答
2

我根据 Luca 的回答和 Christoph 的评论创建了一个小提琴。即使在 IE6 中,此功能也会检测本机打印对话框。

function isNativePrint() {
    var isNative = false;
    try {
        if (window.print.toString().indexOf('[native code]') > -1) isNative = true;
    } catch (e) {
        isNative = true;
    }
    return isNative;
}
于 2012-09-26T13:52:55.180 回答