我正在编写一些CasperJS脚本,允许我从控制台登录网站。但是,当我尝试登录https://www.zara.com/us/
时,我不断收到HTTP 412 Precondition Failed。我已经尝试了--ssl-protocol=any
和--ignore-ssl-erros=true
,但它无法解决问题。有谁知道如何解决这个问题?
谢谢!
答案 0 :(得分:0)
您也可以尝试--web-security=false
,但我认为您的问题与HTTPS无关。使用这个简单的脚本,我得到一个200代码(即使我没有任何选项运行它):
var casper = require('casper').create();
casper.start('https://www.zara.com/us/');
casper.then(function () {
this.echo(this.getTitle());
});
casper.run();
当您填写表单或请求的HTTP标头时,代码中可能存在错误。为了记录,这里是412错误(MDN)的描述:
HTTP 412 Precondition Failed客户端错误响应代码指示 已拒绝访问目标资源。发生这种情况 当GET或HEAD以外的方法有条件请求时 由If-Unmodified-Since或If-None-Match标头定义的条件 没有实现。在这种情况下,请求,通常是上传或 修改资源,无法进行此错误响应 送回来了。
答案 1 :(得分:0)
这个测试脚本对我来说很好。怀疑是useragent还是viewportsize
casper.options.viewportSize = { width:1024, height: 800 }
casper.test.begin('ZARA', 1, function (test) {
casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X)');
casper.start("https://www.zara.com/us/", function () {
test.assertTitle("ZARA United States - Official Website");
});
casper.waitUntilVisible("#newsletter-subscribe-form", function() {
this.capture("pass.jpg");
}, function() {
this.capture("fail.jpg");
});
casper.run(function () {
test.done();
});
});