phantomjs - 使用 casperJS 登录 Bing 搜索

标签 phantomjs casperjs

我一直在尝试创建一个登录脚本来使用 CasperJS 检查我的 bing 奖励积分,我正在查看调试输出,除了未成功登录之外,一切看起来都很好。 (所以我账户上的奖励没有显示)。我已经在 Chrome 控制台中对此进行了测试,并避免使用 casper.fill,因为这会刷新登录页面。登录信息是一个正在运行的测试帐户。

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 = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d7b0b2b9b2a5beb4b2bab6bebb97bbbea1b2f9b4b8ba" rel="noreferrer noopener nofollow">[email protected]</a>";
        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();

最佳答案

我一直在做类似的事情,这就是我管理登录他们网站的方式。

var username = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4c393f293e222d21290c2b212d2520622f2321" rel="noreferrer noopener nofollow">[email protected]</a>', 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();
});

关于phantomjs - 使用 casperJS 登录 Bing 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12355130/

相关文章:

javascript - CasperJS:如何填写 asp 表单

javascript - PhantomJS 的行为不同于 Firefox webdriver

phantomjs - 使用 phantomjs 读取响应体

javascript - Phantomjs仅渲染本地html文件中的空白图片

javascript - 填写非文本类型的输入字段,并在 CasperJS 中触发事件

javascript - casperjs测试注册表

qt - 在 Windows 上构建 PhantomJS 2.0 会导致奇怪的错误

windows - CasperJS 脚本永远不会退出

javascript - casperjs的测试属性

javascript - 在 PhantomJS 上禁用 LocalStorage 以进行干净测试?