2012-09-10 3 views
2

저는 Bing 보상 포인트를 CasperJS로 확인하기 위해 로그인 스크립트를 만들려고했습니다. 디버그 결과를보고 있으며 성공적으로 로그인하지 않는다는 것 외에는 문제가 없습니다. (따라서 내 계좌에 대한 보상은 표시되지 않습니다.) 크롬 콘솔에서 이것을 테스트 해본 결과 casper.fill을 사용하는 것을 피했습니다. 대신 로그인 페이지가 새로 고쳐지기 때문입니다. 로그인 정보는 작동중인 테스트 계정입니다.casperJS를 사용하여 Bing 검색에 로그인

var system = require('system'); 
var utils = require('utils'); 

var casper = require('casper').create({ 
    verbose: true, 
    logLevel: 'debug' 
}); 

var binglink = "https://login.live.com/ppsecure/post.srf?wa=wsignin1.0&rpsnv=11&ct=1347289667&rver=6.0.5286.0&wp=MBI&wreply=https:%2F%2Fssl.bing.com%2Fsecure%2FPassport.aspx%3Frequrl%3Dhttps%253a%252f%252fssl.bing.com%252faccount%252frewards%253fru%253dhttp%25253a%25252f%25252fwww.bing.com%25252f&lc=1033&id=264960&bk=1347289670"; 

casper.start(binglink, function() { 

    casper.evaluate(function() { 
     document.querySelector('input[type="email"]').value = "[email protected]"; 
     document.querySelector('input[type="password"]').value = "genericpassword"; 
     document.querySelector('input[type="submit"]').click(); 
    }); 

}); 

casper.then(function(){ 
    this.wait(2000); 
}) 
casper.then(function(){ 
    this.echo("Capturing Page"); 
    this.capture('bing.live.png'); 

}); 

casper.run(); 

답변

2

나는 이와 비슷한 작업을하고 있었고, 이것으로 사이트에 로그인하는 방법을 관리했습니다.

var username = '[email protected]', password = 'password'; 
var casper = require('casper').create({ 
    pageSettings: { 
     userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.10 (KHTML, like Gecko) Chrome/23.0.1262.0 Safari/537.10' 
    }, 
    viewportSize: { 
     width: 1024, 
     height: 768 
    }, 
}); 

casper.start('http://www.bing.com/rewards/signup/signin', function goToLoginPage() { 
    this.click('#WLSignin'); 
}); 
casper.then(function fillLoginDetails() { 
    this.fill('form[name="f1"]', { 
     'login': username, 
     'passwd': password, 
     'KMSI': true 
    }, false); 
}); 
casper.then(function clickButton() { 
    this.click('input[name="SI"]'); 
}); 
casper.run(function() { 
    this.exit(); 
});