Javascript 使用CasperJS进行基本身份验证

Javascript 使用CasperJS进行基本身份验证,javascript,phantomjs,casperjs,basic-authentication,Javascript,Phantomjs,Casperjs,Basic Authentication,Casperjs有一些问题,因为它在最初加载时并没有对页面进行身份验证,下面是我的代码 var casper = require('casper').create({ verbose: false, logLevel: 'debug', pageSettings: { loadImages: false, // The WebPage instance used by Casper will loadPlugins: false, // use these setti

Casperjs有一些问题,因为它在最初加载时并没有对页面进行身份验证,下面是我的代码

var casper = require('casper').create({
  verbose: false,
  logLevel: 'debug',
  pageSettings: {
    loadImages: false, // The WebPage instance used by Casper will
    loadPlugins: false, // use these settings
  }
});

// print out all the messages in the headless browser context
casper.on('remote.message', function(msg) {
  this.echo('remote message caught: ' + msg);
});

// print out all the messages in the headless browser context
casper.on("page.error", function(msg, trace) {
  this.echo("Page Error: " + msg, "ERROR");
});

//casper.options.viewportSize = {width: 1366, height: 667};

casper.start();
casper.options.pageSettings = {
  customHeaders:{
    'Authorization':'Basic '+btoa('username:password')
  }
}

casper.thenOpen('https://www.dmr.nd.gov/oilgas/basic/getwellprod.asp', function(status) {
  if (status !== 'success') {
    console.log('Unable to access network');
  } else {
    console.log("Getting Authenticated");
    this.echo(this.getTitle());
  }
});

casper.run();
我还尝试过使用setHttpAuth,但没有成功。此处显示的是Phantom版本和resource.error消息-Phantom版本为1.9.2,错误代码为6,说明为SSL握手失败 来自
资源的错误消息。error
表明这是一个狮子狗bug。PhantomJS<1.9.8默认情况下使用SSLv3,但由于POODLE,许多web服务器禁用了SSLv3支持。因此,您需要告诉PhantomJS/CasperJS应该使用TLS:

--ssl-protocol=tlsv1
您还可以抛出
--ignoressl errors=true
,以便更好地度量

更多信息请点击此处:

基本授权 没有用于的
customHeaders
选项。您可能打算使用PhantomJS的选项:

更好的方法是为此使用适当的设置:

casper.options.pageSettings = {
    userName: username,
    password: password
};
您还可以在创建过程中定义此项

如果这不能解决您的问题,请检查
资源.requested
资源.received
事件是否设置了标题

回调参数
代码的另一个问题是,没有
状态
用于回调
然后打开
和其他步骤函数。最后一个成功加载的资源对象被传递到回调中,而不是字符串。因此,您无法检测是否使用该选项成功加载了页面。

实际上,我使用了casper.capture(),但它是一个空白图像。因此,先生,这里是幻影版本1.9.2,错误代码为6,说明是SSL握手失败,可能重复,因此,如果我升级到幻影2,则CasperJs似乎有问题,我确实更改了bootstrap.js中的version函数,但仍然存在相同的问题。另外,我也尝试过你在其他帖子中所说的使用“any”,但在这个上下文中它不起作用。我使用github主分支的CasperJS,它可以完美地与PhantomJS 2配合使用,但你不需要更新。只需使用命令行选项。我更新了我的答案。我的答案有用吗?在加上狮子狗的话后,我忘了打你。
casper.options.pageSettings = {
    userName: username,
    password: password
};