我在CasperJS中遇到了测试问题。
这是我的代码:
var casper = require('casper').create({
viewportSize:{
width:1920,
height: 1080
}
});
casper.start('http://myweb.es/', function() {
})
//COMPROBACION DE POPUP LOGIN
casper.then(function(){
this.click('.btn-attendee');
this.waitForSelector(
'#form_signup2',
function(){
//El parametro 'INFO' es para que el echo aparezca en color VERDE
this.echo('Existe el popup SIGNUP', 'INFO');
this.capture('signup.jpg', undefined, {
format: 'jpg',
quality: 75,
});
this.echo('pantallazo signup', 'INFO');
this.wait(4000, function() {
this.fill('form#form_signup2', {
'first_name': 'Perico',
'last_name': 'Palotes',
'email': new Date().getTime()+'@testing.es',
'password': '123456'
//Ponemos false porque sino nos haria el SUBMIT del formulario y no queremos eso.
//En el email la pasamos un numero aleatorio para que no de fallo al ejecutar el script varias veces
}, true);
//PROBLEM HERE! No run this CLICK
this.click('.checkbox');
this.capture('form.jpg', undefined, {
format: 'jpg',
quality: 75,
});
this.echo('pantallazo form', 'INFO');
});
},
function(){
//El parametro 'ERROR' es para que el echo aparezca en color ROJO
this.echo('error login', 'ERROR')
},
10000
);
});
casper.run();
我的问题是在评论//PROBLEM this.capture
中运行但this.click
没有运行,这个类很好,可以在Mozilla的firebug控制台中运行。
this.click
不会在此部分代码中运行。
我的问题是什么?
答案 0 :(得分:1)
你需要了解casperjs如何使用jquery。它必须传递给你的casper函数内的evaluate函数。
如果你不想点击jquery,你可以说casper.click(x(' yourXpath'));
否则,您需要确保您的jQuery尝试单击正在使用正确的上下文。
使用jquery的高级示例...
casper.then(function () {
// this is your casper function
this.evaluate(function () {
// this is the function that can now manipulate the page using jQuery
$('.yourClass').click();
});
});