2016-08-06 11 views
1

Also zuerst habe ich gelesen this Stack Overflow Frage und es sieht nicht wie mein gleiches Problem aus.Zombie.js jQuery Ladefehler 'j.getClientRects ist keine Funktion'

Im Grunde versuche ich Mocha und Zombie.js zu verwenden, um einige Tests auf meiner Node.js Website auszuführen.

Ich versuche zu überprüfen, ob ich einen Benutzer erstellen kann. Am Ende möchte ich überprüfen, ob mein Bootstrap-Modal existiert. Grundsätzlich habe ich das Bootstrap-Modal in eine EJS if-Anweisung verpackt, so dass es trotzig eine Chance gibt, die es möglicherweise nicht gibt. Deshalb versuche ich, Tests darauf durchzuführen.

Aber momentan funktioniert es nicht einmal mit browser.assert.success();, also versuche ich gerade, das zu lösen, bevor ich weiter gehe und nach Elementen suche.

In diesem Fall sollte ich den folgenden Code auf der Seite ausführen, auf der sich der Browser gerade befindet.

Beim Ausführen dieser Einheit Test gibt es mir den folgenden Fehler.

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) 

Sieht mir wie aus irgendeinem Grund nicht Zombie.js jQuery auf dieser Seite wird geladen, oder es ist ein Fehler. Aber in der vorherigen Stack Overflow Frage und Antwort am Anfang der Frage sieht es so aus, als ob Zombie.js jQuery laden kann.

Können Sie jQuery nicht mit Zombie.js laden? Wie kann ich das beheben? Scheint wie eine sehr einfache Sache, Seiten mit jQuery zu testen. Irgendwelche Ideen?

Lassen Sie mich wissen, wenn Sie zusätzliche Informationen oder etwas benötigen. Vielen Dank.

EDIT aus irgendeinem Grund beim Downgrade auf jQuery Version 1.11.3 scheint es zu funktionieren und der Fehler verschwindet. Irgendein Grund dafür?

Antwort

1

Dieser Fehler ist behoben: https://github.com/assaf/zombie/issues/1031

Annahme jsdom 8/9 als Lösung für Ihr Problem war härter als ich wollte. Es sollte ziemlich einfach sein, eine Dummy-Implementierung für getClientRects() hinzuzufügen, nur um diesen spezifischen Fehler zu überwinden. Ich werde versuchen, dass und sehen, wie es geht

Fügen Sie eine Stub-Implementierung von getClientRects() war einfach. Ich habe 5.0.1 mit einem Fix für diesen spezifischen Fehler veröffentlicht.

mdlavin

Verwandte Themen