testing - 在 zombie.js 中缺少 Raphael 依赖项?

标签 testing headless-browser zombie.js

我在玩 zombie 脚本:

var Browser = require('zombie');
var assert = require('assert');

var browser = Browser.create();
browser.debug = true;
browser.maxRedirects = 50;
browser.userAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36';
browser.visit('https://redacted.com').
  then(function () {
        console.log(browser.evaluate("document.URL"));
        console.log(browser.evaluate("document.title"));
        return browser.
                fill('uid','aUser').
                fill('password', 'aPassword').
                pressButton('Sign In');
  }).then(function() {
        console.log("Signed in?");
        console.log(browser.evaluate('document.URL'));
        console.log(browser.evaluate("document.title"));
  });

我看到了一个引用错误:

zombie_experiment$ node zombie1.js 
  https://redacted.com/


  Possibly unhandled Error: ReferenceError: Raphael is not defined
      at Promise$_settlePromiseFromHandler [as _settlePromiseFromHandler] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:669:58)
      at Promise$_settlePromiseAt [as _settlePromiseAt] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:825:14)
      at Promise$_settlePromises [as _settlePromises] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:968:14)
      at Promise$_rejectPromises [as _rejectPromises] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:961:10)
      at Async$_consumeFunctionBuffer [as _consumeFunctionBuffer] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/async.js:75:12)
      at Async$consumeFunctionBuffer (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/async.js:38:14)
      at process._tickDomainCallback (node.js:463:13)

这个引用错误是真实的,还是我的脚本不是 zombie.js 的标准用例?

最佳答案

我无法让 Raphael 使用 zombiejs。和jsdom处理canvas的方式有关。 Raphael 在检测绘图引擎类型时静默失败。

对我来说,唯一的解决方案是避开我的应用程序中使用 Raphael 在 Canvas 上绘图的部分。 :(

关于testing - 在 zombie.js 中缺少 Raphael 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26409662/

相关文章:

ruby - 在 Windows 操作系统中使用 Headless 的 Capybara

karma-runner - 带有 Chrome 83 的 HeadlessChrome 与 Karma 断开连接

python - 用手工计算还是程序计算来测试?

testing - 在线测试我的网站

javascript - Puppeteer 无效的选择器

node.js - 如何在 mocha Nodejs 中使用 Passport JS 对我的 facebook 登录进行单元测试?

javascript - 使用 zombie.js 检查多个类

perl - 在 TAP 中静音警告

django - 匿名用户与 django.test.client.login()

unit-testing - 测试 Web 应用程序的 UI?