如何在 SpookyJS 中使用 HTTP 基本认证
How to use HTTP basic auth in SpookyJS
我写了一些代码来使用带有 htaccess 保护 的 CasperJS 进入我的 Wordpress 页面。该脚本应该登录然后更新插件。此时我可以登录并从应该更新的插件创建屏幕截图。 (CasperJS 也能正常工作)
现在我希望此代码段 在服务器上运行 。所以我用
表达,诡异,节点
我找到了 this spooky 片段并尝试将我的 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
});
我写了一些代码来使用带有 htaccess 保护 的 CasperJS 进入我的 Wordpress 页面。该脚本应该登录然后更新插件。此时我可以登录并从应该更新的插件创建屏幕截图。 (CasperJS 也能正常工作)
现在我希望此代码段 在服务器上运行 。所以我用
表达,诡异,节点
我找到了 this spooky 片段并尝试将我的 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
});