繁体   English   中英

如何在SpookyJS中使用HTTP基本身份验证

[英]How to use HTTP basic auth in SpookyJS

我编写了一些代码,使用具有htaccess保护功能的 CasperJS转到我的Wordpress页面。 该脚本应登录,然后再更新插件。 目前,我可以从应该更新的插件登录并创建屏幕截图。 (CasperJS也可以正常工作)

现在,我希望该代码段在服务器上工作 所以我用

表达, 幽灵般,节点

我发现了这个怪异的代码片段,并试图将我的CasperJS代码插入其中。 但是现在我无法克服SpookyJS的htaccess保护。 任何想法?

同样,下面的代码也可以在具有spooky的nodejs服务器上工作

var casper = require('casper').create({
    verbose: true,
    logLevel: 'debug',
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',
    pageSettings: {
        loadImages:  false,         
        loadPlugins: false        
    },
    viewportSize: {
        width: 1900,
        height: 1200
    }

});
var x = require('casper').selectXPath;
var user_email = '<login-name>';
var user_pass = '<login-password';
var selector = '.update-link';

casper.start();

casper.setHttpAuth('<username>', '<password>');

casper.thenOpen('<wordpress url with htaccess', function() {

});

// wordpress login
casper.then(function() {
    this.page.evaluate(function(a,b) {
        document.querySelector("input[name='log']").value = a
        document.querySelector("input[name='pwd']").value = b;
        document.querySelector("#wp-submit").submit(); //nothing happened
    }, user_email, user_pass);
}).then(function(){

});

casper.thenClick(x('//*[@id="wp-submit"]'), function () {
    console.log("clicked login")
});

// An example to mark all plugins to update
casper.thenOpen('<wordpress site>/wp-admin/plugins.php', function() {
    this.waitForSelector(selector, function then() {
        this.evaluate(function (sel) {
            var x =document.querySelectorAll(sel);

            for (i = 0; i < x.length; i++) {
                x[i].style.backgroundColor = "red";
            }
        }, selector);
    });
});



casper.then(function () {
    casper.capture('update_me.png');
})

casper.run();

SpookyJS似乎没有提供与CasperJS的setHttpAuth()等效的功能,但是您仍然可以在创建过程中通过pageSettings属性传递用户名和密码:

var spooky = new Spooky({
    child: {
        transport: 'http'
    },
    casper: {
        logLevel: 'debug',
        verbose: true,
        pageSettings: {
            userName: 'some username',
            password: 'some password'
        }
    }
}, function (err) {
    // your script here
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM