該問題可能與最近發現的SSLv3漏洞(POODLE)有關。網站所有者被迫從他們的網站刪除SSLv3支持。由於PhantomJS < v1.9.8使用的SSLv3通過default,你應該使用的TLSv1:
casperjs --ssl-protocol=tlsv1 yourScript.js
的包羅萬象的解決辦法是使用any
因爲當新PhantomJS版本與其他SSL協議一起去。但是,這會使尚未禁用SSLv3的網站上的POODLE漏洞被利用。
casperjs --ssl-protocol=any yourScript.js
替代方法:更新到PhantomJS 1.9.8或更高版本。請注意,更新到PhantomJS 1.9.8會導致new bug,這對CasperJS尤其惱人。
如何驗證:在腳本的開頭添加一個resource.error
事件處理程序是這樣的:
casper.on("resource.error", function(resourceError){
console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')');
console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
});
如果它確實是與SSLv3的問題的錯誤將是這樣的:
Error code: 6. Description: SSL handshake failed
順便說一句,你也可能想要運行--ignore-ssl-errors=true
命令行選項,當有用證書來判斷錯誤。
[PhantomJS未能打開HTTPS站點]的可能重複(http://stackoverflow.com/questions/12021578/phantomjs-failing-to-open-https-site) – 2014-10-17 07:12:10