【问题标题】:getting javascript error when trying to get svg base64 image from javascript using selenium htmlunit尝试使用 selenium htmlunit 从 javascript 获取 svg base64 图像时出现 javascript 错误
【发布时间】:2017-12-04 19:38:50
【问题描述】:

在我的 javascript 中,我将 svg 对象转换为 base 64 使用

     var svg= svgObject;
    var serializer = new XMLSerializer();
    var svgString = serializer.serializeToString(svg);
    return new Blob([svgString], {type:"application/svg+xml"})

当我在浏览器中运行代码时,我能够正确地恢复 base64。

但是,当我在 java 中使用 selenium-htmlunit 运行 javascript 代码时, 使用:

ScriptResult result = page.executeJavaScript(javascriptfunction);

我在下面收到此错误:

Cannot find function isFinite in object function Number() { [native code] }.

如何解决此错误,以便在使用 htmlunit 执行该 javascript 后获取 base64 图像?

【问题讨论】:

    标签: selenium selenium-webdriver htmlunit htmlunit-driver


    【解决方案1】:

    已经用当前的 HtmlUnit 代码做了一些测试。函数 Number.isFinite 可用并且工作正常。您使用的是最新版本吗?

    【讨论】:

    • 我使用的是 htmlunit 2.27 和 selenium server 3.7.1。这个版本兼容吗?我能够通过在我的 javascript 中为 Number.isFinite 创建一个函数来使其工作
    • 请尝试使用最新版本 2.28 和最新的 HtmlUnit 驱动程序 (2.28.2)。并注意更新所有依赖项。从技术上讲,这是在 HtmlUnit 使用的自定义 rhino (core-js) 中实现的。
    • 谢谢,我会试试的。另外,我有时会遇到的另一个问题是,当我执行 javascript 函数以从页面返回数据时,它返回 null。有没有办法在 htmlunit 的同一页面上继续执行相同的 javascript,直到结果不为空?
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2018-03-15
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多