docparse-scraper-nst
Version:
Node Zombie based scraper to scrape bills from the NStar (supplier code "NST)" website
39 lines (36 loc) • 1.58 kB
JavaScript
var inspect = require('eyespect').inspector();
var atHomepage = require('./atAccountHomepage');
var username, password;
module.exports = function(data, cb) {
var bro = data.bro;
var currentLogin = data.currentLogin;
if (!currentLogin.username) { return cb('failed to login, "username" field missing from data.currentLogin'); }
if (!currentLogin.password) { return cb('failed to login, "password" field missing from data.currentLogin'); }
var usernameField = bro.querySelector(":input[name=username]");
var passwordField = bro.querySelector(":input[name=password]");
var submitField = bro.button("Login");
if (!submitField) {
return cb('login failed, submit button not found on page');
}
// var output = {
// username: data.currentLogin.username,
// currentLoginIndex: data.currentLoginIndex,
// numLogins: data.numLogins
// }
// inspect({username: data.currentLogin.username}, 'submitting login form');
inspect({user: data.currentLogin.username}, 'submitting login form');
bro.
fill(":input[name=username]", currentLogin.username).
fill(":input[name=password]", currentLogin.password).
pressButton('Login', function () {
var result = atHomepage(data.bro);
inspect(result, 'at account homepage after login?');
if (result) { return cb(); }
bro.pressButton('Login', function () {
var result = atHomepage(data.bro);
inspect(result, 'at account homepage after login?');
if (result) { return cb(); }
return cb('not at account homepage when we should be');
});
});
};