2015-07-14 3 views
1

Я пытаюсь войти в систему Facebook с помощью casper. Моя программа выглядит следующим образом:facebook login используя casper

var casper=require("casper").create({ 
clientScripts:["C:\Users\HP\Desktop\Python\jsfiles\jquery.min.js"], 
verbose:true, 
logLevel: 'debug' 
}); 

var x =require('casper').selectXPath; 

casper.userAgent('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36'); 

phantom.cookiesEnabled=true; 


var fs=require('fs'); 
var cookies=JSON.stringify(phantom.cookies); 
fs.write('cookies.txt',cookies,644); 

casper.start("https://www.facebook.com",function(){ 

    this.echo(this.getTitle()); 
}).viewport(1200,1000); 


casper.wait(5000,function(){ 
    casper.capture('test1.png') 
}); 

casper.waitForSelector(x('//*[@id="pass"]'),function(){ 
this.thenEvaluate(function(){ 
    $('#email').val(""); 
    $('#pass').val(" "); 
}); 
}); 

casper.wait(5000,function(){ 
    casper.capture('test2.png') 
}); 
casper.then(function(){ 
casper.click(x('//*[@id="loginbutton"]')); 
}); 

casper.wait(5000,function(){ 
    casper.capture('test3.png') 
}); 
casper.run(); 

выше программа возвращает полностью, но test2.png не показывает каких-либо данных в электронной почте и паролем текстовые поля. Кроме того, test3.png возвращает «ввести действительный адрес электронной почты».

Куда я иду не так?

ответ

1

Это связано с ошибкой в ​​вашем javascript!

$('#email').val(""); устанавливает поле с идентификатором email в пустую строку!

, если вы хотите, чтобы получить значение JQuery-поле сделать это следующим образом:

$('#email').val();

This может помочь вам, если у вас есть больше проблем с JQuery