Zombie.js jQuery的加载错误“j.getClientRects不是一个函数”(Zomb

2019-09-28 19:42发布

所以第一我读这个堆栈溢出问题,它看起来并不像我同样的问题。

基本上我试图用摩卡和Zombie.js在我的Node.js网站运行一些测试。

我想检查,看看是否我可以创建一个用户。 最后,我想检查,看看我的引导模式存在。 基本上我有引导模式包装在一个EJS if语句,因此有挑衅它可能不存在的机会。 所以这就是为什么我想在其上运行测试。

但目前它甚至与工作不browser.assert.success(); 所以我现在只是想在移动到检查元素之前解决这个问题。

browser.visit('/login', function() {
    browser.fill('email', 'test1@test.com');
    browser.fill('password', 'testtest');
    browser.pressButton('Login').then(function() {
        browser.assert.success();
    }).then(done, done);
});

在这种情况下,我应该运行在网页浏览器是目前在下面的代码。

<script>
    $("#paymentModal").modal('show');
</script>

当运行这个单元测试它给了我下面的错误。

https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3
}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpan
TypeError: j.getClientRects is not a function
 at k (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:26891)
 at Object.n.extend.pixelMarginRight (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:25936)
 at a.getComputedStyle.Sa (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:27592)
 at Function.n.extend.css (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:30895)
 at https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:4:520
 at Y (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:3:4661)
 at n.fn.extend.css (https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js:4:361)
 at c.setScrollbar (http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js:6:18612)
 at c.show (http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js:6:14692)
 at .<anonymous> (http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js:6:13878)

在我看来就像出于某种原因Zombie.js没有在该网页上加载jQuery的或有错误。 但在那之前的堆栈溢出的问题和答案在它看起来像Zombie.js可以加载jQuery的问题的开始。

你是不是能够与Zombie.js加载jQuery的? 我怎样才能解决这个问题? 似乎是一个很简单的事情,以测试使用jQuery的网页。 有任何想法吗?

让我知道如果你需要任何额外的信息或任何东西。 谢谢。

编辑出于某种原因降级到jQuery的版本时1.11.3 ,似乎工作和错误消失。 什么理由呢?

Answer 1:

此错误是固定的: https://github.com/assaf/zombie/issues/1031

采用jsdom 8/9的修复您的问题比我要更努力。 它应该是很容易添加对getClientRects虚拟实现()只是为了让过去那个特定的失败。 我想试试,看看它是如何去

添加getClientRects的存根实现()是直接的。 我已经为这个特定的故障修复发布5.0.1。

mdlavin



文章来源: Zombie.js jQuery Load Error 'j.getClientRects is not a function'