我已开始使用casperjs(1.1.0-beta3)+ phantomjs(1.9.8)测试campus2020网站。并面临网站没有打开的问题,而是测试只是冻结。我从phantomjs网站上获取了脚本示例:
var page = require('webpage').create();
page.open('http://informatik.uni-leipzig.de/campus2020', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});
它在其他网站上运行良好。我已经测试过在几个环境中使用phantomjs打开campus2020站点:win 7,Ubuntu 14.04,ghostdriver和java selenium webdriver,以及在RHEL 6.6上运行在selenium网格中的phantomjs。所有这些选项均失败。我尝试添加userAgent选项和setTimeout。没有改变。此外,我尝试使用基于selenium webdriver的测试框架打开此网站,该框架使用了phantomjs,但它以相同的方式工作 - phantomjs初始化然后冻结。任何想法怎么可能解决这个问题?
现在我的代码看起来像这样:
var page = require('webpage').create();
console.log("Page is going to be opened...")
page.open('http://informatik.uni-leipzig.de/campus2020/', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
page.onError = function (msg, trace) {
console.log(msg);
trace.forEach(function(item) {
console.log(' ', item.file, ':', item.line);
})
}
page.onResourceError = function(resourceError) {
console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')');
console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
};
page.onResourceTimeout = function(request) {
console.log('Response (#' + request.id + '): ' + JSON.stringify(request));
};
并且没有显示错误。
答案 0 :(得分:0)
我不知道为什么会出现这个问题,但您可以更新到PhantomJS 2并且它可以正常工作。 Linux还没有二进制文件,因此您需要自己构建它。
您还需要更新CasperJS版本,因为1.1-beta3不支持PhantomJS 2,但master branch on GitHub支持。