我目前正在使用HtmlUnit开发一些测试。它正在加载一个包含braintree.js(它们的表单加密库)的页面。我有一堆正在运行,但我被困在它调用加密的地方。有问题的JS是:
(function() {
try {
var ab = new Uint32Array(32);
crypto.getRandomValues(ab);
sjcl.random.addEntropy(ab, 1024, "crypto.getRandomValues");
} catch (e) {}
})();
HtmlUnit正在抛出:
EcmaError, ReferenceError, "'crypto' is not defined."
我认为HtmlUnit不包含加密。是否可以自己包含加密库?
答案 0 :(得分:4)
根据您的评论,我必须告诉您,在JavaScript方面,HtmlUnit是一个痛苦的问题。它会抱怨未定义的变量和未知函数等等。
真正的浏览器更灵活,例如:它们接受语法上不正确的JavaScript部分。 HtmlUnit期望一切都是完美的,没有任何错误。此外,即使你没有错过分号,HtmlUnit也可能会抱怨。
我的建议:
BrowserVersions
之间切换。事实证明,Internet Explorer(具有讽刺意味的是)在解释JavaScript时提供了最佳结果