我在使用https网站登录时遇到问题。
剧本:
var casper = require('casper').create();
console.log("casper create OK");
casper.start("https://my-ip/login_page.html", function() {
console.log("Connexion URL OK");
// set a wait condition to make sure the page is loaded (particularly iframe in my case)
this.wait(5000,function(){
console.log("Attente 5 sec OK");
//fill out the form
this.fillSelectors("form[name='lf']",{
'input#user' : "my_login",
'input#pass' : "my_password"
});
console.log("Renseignement login et pass OK");
// click the login button
this.click("input[name='loginsub']");
console.log("Passage bouton login OK");
// switch to iframe (won't be necessary for most)
this.page.switchToChildFrame('mainframe');
console.log("Switch iframe OK");
// Test d'une zone sur la page pour valider la connexion
casper.waitForSelector('.area-status', function() {
console.log("Validation element sur la page OK");
});
});
});
// Check etat de l'alarme général
// Check status des zones de l'alarme
casper.run();
回归:
[root@srv-linux bin]# casperjs test.js
casper create OK
Connexion URL OK
Attente 5 sec OK
CasperError: Errors encountered while filling form: form not found
/tmp/casperjs/modules/casper.js:807 in fillForm
/tmp/casperjs/modules/casper.js:897 in fillSelectors
/usr/local/bin/test.js:14
/tmp/casperjs/modules/casper.js:2052 in _check
[root@srv-linux bin]# casperjs fe.js
SyntaxError: Parse error
问题出在功能等待之后。 表单名称是“lf”我已经检查过:
<form name="lf" action="default.html" method="get" onsubmit="return loginencrypt();">
我尝试在等待5秒后进行捕获但是我的png是空白的......
你有什么想法吗?
感谢您的帮助!
答案 0 :(得分:0)
我找到了解决方案,用这个ssl选项执行脚本:
casperjs --ignore-ssl-errors=yes test4.js