当前位置: 首页 > 面试题库 >

无法在HtmlUnit中正确执行JavaScript

包子航
2023-03-14
问题内容

我目前正在使用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不包含加密。我自己可以包括一个密码库吗?


问题答案:

根据您的评论,我不得不告诉您HtmlUnit在涉及JavaScript时令人不安。它将抱怨很多关于变量未定义和未知函数等问题。

实际的浏览器更加灵活,例如:它们接受语法上不正确的JavaScript。HtmlUnit希望一切都完美无误。此外,即使您没有错过分号,HtmlUnit也会抱怨。

我的建议:

  • 确保您的JavaScript语法正确
  • 避免使用复杂的库(似乎已正确支持jQuery)
  • 如果您可以使用非最小版本的库,则值得尝试
  • 尽量避免使用复杂的jQuery方法(例如:将事件动态添加到元素)
  • 最重要的一个:尝试在不同的之间切换BrowserVersions。事实证明,Internet Explorer在解释JavaScript方面可提供最佳结果


 类似资料:
  • 问题内容: 我正在获取一个exe文件,必须在Windows Server 2008 R2上使用Java(版本6)执行该文件。现在有一个我不太了解的问题。使用命令行执行文件时 它可以正常工作,但是当我执行文件时 我可以在Windows任务管理器中看到test.exe,它开始运行(它会创建一个记录该状态的日志),但随后它不再执行任何操作。test.exe用0%无休止地运行,我必须手动终止该进程。这样做

  • 问题内容: 我使用Java中的以下代码使用HMAC-SHA1哈希一些值: 属于 在PHP中,有一个类似的函数可用来比较Java实现返回的值。 因此,首先尝试是: 返回: 我的Java函数也会返回。 好的,看来可行。然后,我尝试使用一个更复杂的键: 返回: 这次,我的Java展示返回了: 我的PHP代码返回的哈希值不等于我的Java函数返回的值,而且我找不到原因。 有小费吗? 问题答案: 在您的PH

  • 问题内容: 我正在尝试在以下URL上执行JavaScript :。我可以使用谷歌浏览器通过按ctrl + shift + j并粘贴以下脚本来打开控制台: 它返回:150然后在下一行中,我写: 并且它返回长度为150的数组。 当我尝试这样做时: 我收到以下异常: 导致异常的行是: 那么,我应该如何从HtmlUnit执行此脚本,就像在Google Chrome控制台中一样? 问题答案: 这些是您的框架

  • 我正在使用Selenium Web驱动程序,同时使用Chrome和HTMLUnit。对于Chrome,下面的代码可以工作,但HTMLUnit返回一个错误,表示找不到元素。 最后一行将返回null,未找到任何元素。使用的XPath是: 与Chrome配合使用,在XPath与HTMLUnit配合使用时失败。知道吗? 使用的驱动程序如下所示:

  • 我的目标是创建一个抽象类,它的静态方法必须被实现,但是由于静态方法不能被抽象,我有一些问题。 这就是我提出的解决方案: 我写这篇文章是因为我找不到任何等价的答案,这让我想知道这在Java中是否是惯用的。

  • 问题内容: 情况: 我正在AngularJs中制作一个分配权限的应用程序。为了做到这一点,我有三个嵌套的ng-repeat。 第一循环 :显示PERMISSION GROUP 第二个循环 :对于每个权限组,显示“类别”。在此循环内执行一个函数,该函数将获取每个类别的所有子类别 第三循环 :显示子类别 问题: 问题在于第二个循环内函数的执行。 尝试1-ng-init: 在控制器中: 行为很奇怪。可能