Ich habe seit einer Weile gelesen, und ich kann nicht richtig scheinen. Ich habe eine Datei mit meinen Skripten darin login_process.js
und eine andere Datei, die Modulfunktionen hat, muss ich benötigen routines.js
.Casper js erfordern Modul
Ich bekomme immer einen Parse-Fehler auf der Linie var routine = require('../routines');
. Ich denke, das bedeutet, der Fehler könnte in der Datei routines.js
aber Knoten (verwendet, um Syntax zu testen) und jshint sagen mir nur, dass casper
und die anderen Bibliotheken sind undefined (dh phantomjs, erfordern ect).
Die Dateien sind wie folgt: routines.js:
var require = patchRequire(require);
var casper = require('casper').create();
exports.login = function(email, pass, test) {
casper.then(function() {
this.withFrame(0, function() {
this.waitUntilVisible('form#login-form', function() {
this.fill('form#login-form', {
email: email,
password: pass
}, false);
});
});
});
casper.then(function(){
casper.withFrame(0, function() {
this.click("#modalButtonLogin");
});
});
};
exports.signup = function(first_name, last_name, email, pass, other_pass, test) {
casper.then(function() {
this.withFrame(0, function() {
this.waitUntilVisible('form#signup-form', function() {
this.fill('form#signup-form', {
first_name: first_name,
last_name: last_name,
login: email,
password: pass,
re_enter_password: 'pass'
}, false);
});
});
});
casper.then(function(){
casper.withFrame(0, function() {
this.click("#modalButton");
});
});
};
login_process.js:
// var require = patchRequire(require);
var routine = require('../routines');
casper.test.begin('Logs in', 1, function(test) {
var fs = require('fs')
var data = fs.read('../cookies.txt');
phantom.cookies = JSON.parse(data);
casper.start("https://web.witkit.com/#")
.wait(1000, function(){
routine.login('****@witkit.com', '******', test);
})
.wait(1000, function(){
this.withFrame(0, function() {
test.assertExists('.wkKitTitle');
});
})
.then(function(){
phantom.clearCookies();
casper.echo(JSON.stringify(routine.login)+ "here")
})
.run(function() {
test.done();
});
});
casper.test.begin('Wrong login warning', 2, function(test) {
casper.start("https://web.witkit.com/#")
.then(function(){
phantom.clearCookies();
})
.wait(1000, function(){
routine.login('****@witkit.com', '******', test);
})
.wait(1000, function(){
this.withFrame(0, function() {
test.assertExists('.wkErrorMessageText');
test.assertSelectorHasText('.wkErrorMessageText', 'Wrong email or password');
});
})
.then(function(){
phantom.clearCookies();
})
.run(function() {
test.done();
});
});
casper.test.begin('Directs to correct url on form submission', 2, function(test) {
casper.start("https://web.witkit.com/#")
.then(function(){
test.assertUrlMatch('https://web.witkit.com/#')
})
.wait(1000, function(){
routine.login('*******@witkit.com', '**', test);
})
.wait(1000, function(){
test.assertUrlMatch('https://web.witkit.com/#kit/176********')
})
.then(function(){
phantom.clearCookies();
})
.run(function() {
test.done();
});
});
Ausgang:
Test file: login_process.js
SyntaxError: Parse error
FAIL SyntaxError: Parse error
# type: error
# file: login_process.js
# subject: false
# error: "SyntaxError: Parse error"
# stack:
# Logs in
FAIL TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)')
# type: uncaughtError
# file: login_process.js:13
# error: 'undefined' is not a function (evaluating 'routine.login('*******@witkit.com', '*****', test)')
# TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)')
# at login_process.js:13
# at _check (/usr/local/lib/node_modules/casperjs/modules/casper.js:2034)
# stack: not provided
# Wrong login warning
FAIL TypeError: 'undefined' is not a function (evaluating 'routine.login('****@witkit.com', '****', test)')
# type: uncaughtError
# file: login_process.js:42
# error: 'undefined' is not a function (evaluating 'routine.login('****@witkit.com', '****', test)')
# TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)')
# at login_process.js:42
# at _check (/usr/local/lib/node_modules/casperjs/modules/casper.js:2034)
# stack: not provided
# Directs to correct url on form submission
PASS Current url matches the provided pattern
FAIL TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)')
# type: uncaughtError
# file: login_process.js:72
# error: 'undefined' is not a function (evaluating 'routine.login('******@witkit.com', '******', test)')
# TypeError: 'undefined' is not a function (evaluating 'routine.login('[email protected]', 'caspertest', test)')
# at login_process.js:72
# at _check (/usr/local/lib/node_modules/casperjs/modules/casper.js:2034)
# stack: not provided
FAIL 5 tests executed in 4.196s, 1 passed, 4 failed, 0 dubious, 0 skipped.
Details for the 4 failed tests:
In login_process.js
Untitled suite in login_process.js
error: SyntaxError: Parse error
In login_process.js:13
Logs in
uncaughtError: TypeError: 'undefined' is not a function (evaluating 'routine.login('******@witkit.com', '******', test)')
In login_process.js:42
Wrong login warning
uncaughtError: TypeError: 'undefined' is not a function (evaluating 'routine.login('*****@witkit.com', '*****', test)')
In login_process.js:72
Directs to correct url on form submission
uncaughtError: TypeError: 'undefined' is not a function (evaluating 'routine.login('*****@witkit.com', '*****', test)')
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///usr/local/lib/node_modules/casperjs/bin/bootstrap.js. Domains, protocols and ports must match.
CasperJS ist ein eigenständiges Programm. Es hat nichts mit node.js zu tun. Wie läuft es dir? –
@ ArtjomB. Ich benutze Knoten, um es für Tests auf Syntaxfehler zu überprüfen, wenn es fehlschlägt (jemand schlug vor, ich mache das und es funktioniert ziemlich gut), dann verwende ich grunt-casper, um alle Tests auszuführen. Aber wenn ich im Debugging bin, führe 'casperjs test login_process.js --engine = phantomjs' von der Kommandozeile aus – ReganPerkins
Benutze eslint o.ä., um festzustellen, wo der Syntaxfehler liegt. –