CasperJs谷歌登录

时间:2017-06-14 16:54:43

标签: casperjs

我一直在处理一些代码来访问我的Google CSE 为此,我需要使用我的Google帐户登录。

我有以下代码:

var casper = require('casper').create({
    verbose: true,
   logLevel: 'debug',
   waitTimeout: 5000,
   clientScripts: ["libs/jquery.min.js"],
   userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) 
   AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4'
});



const google_email = "MY_EMAIL";
const google_passwd = "MY_PASSWORD";
const loginUrl = 'https://accounts.google.com';


casper.start(loginUrl, function() {
    this.waitForSelector('#view_container > form');
});


casper.then(function() {
    this.fillSelectors('#view_container > form', {
    'input[name="identifier"]': google_email
    }, false);
});
casper.then(function() {
    this.click('#identifierNext');
});

casper.wait(500, function() { //Wait for next page to load
    this.capture('images/step01.png');
});

casper.then(function() {
    this.evaluate(function () {
        var identifierNext = $('#identifierNext');
        identifierNext.click();
    });
});

casper.then(function() {
    this.capture('images/step02.png');
});

 casper.run(function() {
     this.echo("Done");
 });

输入电子邮件的部分似乎有效。

但是点击部分不起作用。

我找到this,但似乎过时了。

由于

2 个答案:

答案 0 :(得分:1)

我还没有解决与新表单相关的问题,但是我们找到了一种访问旧表单的方法,所以" old"脚本应该仍然有效,并且该解决方案正在禁用JS。为此,将loginUrl更改为

https://accounts.google.com/ServiceLogin?passive=1209600&continue=https%3A%2F%2Faccounts.google.com%2FManageAccount&followup=https%3A%2F%2Faccounts.google.com%2FManageAccount&flowName=GlifWebSignIn&flowEntry=ServiceLogin&nojavascript=1#identifier

重要的是:nojavascript = 1

我们正在使用Casperjs Google Login Not working中发布的脚本 只需更改登录网址。

答案 1 :(得分:0)

尝试一下-等待动态加载的页面需要更多的延迟。

StdErrPipe