Phantomjs不会打开网页

时间:2015-03-16 05:18:37

标签: javascript testing phantomjs casperjs

我已开始使用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));
    };

并且没有显示错误。

1 个答案:

答案 0 :(得分:0)

我不知道为什么会出现这个问题,但您可以更新到PhantomJS 2并且它可以正常工作。 Linux还没有二进制文件,因此您需要自己构建它。

您还需要更新CasperJS版本,因为1.1-beta3不支持PhantomJS 2,但master branch on GitHub支持。