Ho letto per un po 'e non riesco a capire bene. Ho un file con i miei script in esso login_process.js
e un altro file che ha funzioni del modulo che ho bisogno di richiedere routines.js
.Casper js richiede il modulo
Continuo a ricevere un errore di analisi sulla linea var routine = require('../routines');
. Immagino che questo significhi che l'errore potrebbe essere nel file routines.js
ma nel nodo (usato per testare la sintassi) e jshint mi sta solo dicendo che casper
e le altre librerie sono indefinite (es. Phantomjs, richiedono ect).
I file sono i seguenti: 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();
});
});
uscita:
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 è un programma autonomo. Non ha nulla a che fare con node.js. Come stai andando? –
@ArtjomB. Io uso il nodo per eseguirlo per verificare i test per gli errori di sintassi quando fallisce (qualcuno mi ha suggerito di farlo e funziona piuttosto bene) quindi sto usando grunt-casper per eseguire tutti i test. Ma quando eseguo il debugging eseguo 'casperjs test login_process.js --engine = phantomjs' dalla riga di comando – ReganPerkins
Usa eslint o qualcosa del genere per determinare dove si trova l'errore di sintassi. –