Не удалось заставить работать пример PhantomJS

Я пытаюсь написать скрипт PhantomJS, который будет автоматизировать отправку приложений Android в Amazon App Store. Я основываю свой сценарий на этом примере:http://code-epicenter.com/how-to-login-amazon-using-phantomjs-working-example/, Я изменил этот пример для работы сhttps://developer.amazon.com/home.html вместо URL, используемого в примере.

Вот что я попробовал:

var steps=[];
var testindex = 0;
var loadInProgress = false;//This is set to true when a page is still loading

/*********SETTINGS*********************/
var username = 'unknown';
var password = 'unknown';

var webPage = require('webpage');
var page = webPage.create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36';
page.settings.javascriptEnabled = true;
page.settings.loadImages = false;//Script is much faster with this field set to false
phantom.cookiesEnabled = true;
phantom.javascriptEnabled = true;
/*********SETTINGS END*****************/


/* Get command line args user password*/
var system = require('system');
var args = system.args;

if (args.length === 1) {
  console.log('Try to pass some arguments when invoking this script!');
} else {
  args.forEach(function(arg, i) {
    console.log(i + ': ' + arg);
    if ( i === 1 ) { username = arg; }
    if ( i === 2 ) { password = arg; }
  });
}

if ( username == 'unknown' ) {
        console.log('Please specify username and password');
        phantom.exit();
}
if ( password == 'unknown' ) {
        console.log('Please specify username and password');
        phantom.exit();
}


console.log('All settings loaded, start with execution');
page.onConsoleMessage = function(msg) {
    console.log(msg);
};
/**********DEFINE STEPS THAT FANTOM SHOULD DO***********************/
steps = [

        /*
         * Step 1 - Open Amazon home page
         */
        function(){
                console.log('Step 1 - Open Amazon home page');
                page.open("https://developer.amazon.com/home.html", function(status) {
                        console.log('status is '+ status );
                });
        },

                /*
     * Step 2 - Populate and submit the login form
     */
    function(username,password){
            console.log('Step 2 - Populate and submit the login form');
            // var appActionToken = page.evaluate(function() { return $('input[name="appActionToken"]').attr('value'); });
            // console.log( 'appActionToken is ' + appActionToken );
            console.log( 'username is ' + username );
            page.evaluate(function(username,password){
                    console.log( '  username is ' + username );
                    document.getElementById("ap_email").value=username;
                    document.getElementById("ap_password").value=password;
                    document.getElementById("ap_signin_form").submit();
            },username, password);
    },


        /*
         * Step 3 - Wait Amazon to login user. After user is successfully logged in,
         * user is redirected to home page. Content of the home page is saved to AmazonLoggedIn.html.
         * You can find this file where phantomjs.exe file is. You can open this file using Chrome to ensure that you are logged in.
         */
        function(){
                console.log("Step 3 - blah blah blah");
                var fs = require('fs');
                var result = page.evaluate(function() {
                        return document.querySelectorAll("html")[0].outerHTML;
                });
                fs.write('AmazonLoggedIn.html',result,'w');
        },
];

/**********END STEPS THAT FANTOM SHOULD DO***********************/

//Execute steps one by one
interval = setInterval(executeRequestsStepByStep,50);

function executeRequestsStepByStep(){
    if (loadInProgress == false && typeof steps[testindex] == "function") {
        console.log("testindex is " + testindex );
        if ( testindex == 1 ) {
                console.log( "username is " + username );
            steps[testindex](username, password);
        } else {
            steps[testindex]();
        }
        testindex++;
    }
    if (typeof steps[testindex] != "function") {
        console.log("test complete!");
        phantom.exit();
    }
}

/**
 * These listeners are very important in order to phantom work properly.
 * Using these listeners, we control loadInProgress marker which controls, weather a page is fully loaded.
 * Without this, we will get content of the page, even a page is not fully loaded.
 */
page.onLoadStarted = function() {
    loadInProgress = true;
    console.log('Loading started');
};
page.onLoadFinished = function() {
    loadInProgress = false;
    console.log('Loading finished');
};
page.onConsoleMessage = function(msg) {
    console.log(msg);
};

Когда я запускаю сценарий, выходные данные записываются в файл AmazonLoggedIn.html, но их содержимое указывает на сбой входа в систему. Я совершенно уверен, что я использую правильные учетные данные. Вот как выглядит получившийся AmazonLoggedIn.html:

Ответы на вопрос(1)

Ваш ответ на вопрос