Phantomjs 无法打开网页

Phantomjs does not open web page

本文关键字:网页 Phantomjs      更新时间:2023-09-26

我已经开始用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,以及phantomjs,在RHEL 6.6上的Selenium grid中运行。所有这些选项都失败了。我尝试添加用户代理选项并设置超时。什么都没有改变。我也尝试使用基于 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));
    };

并且没有显示任何错误。

我不知道

为什么会有这个问题,但你可以更新到 PhantomJS 2,它会起作用。目前还没有适用于 Linux 的二进制文件,因此您需要自己构建它。

您还需要更新 CasperJS 版本,因为 1.1-beta3 不支持 PhantomJS 2,但 GitHub 上的主分支支持。

phantomjs --debug=true phantom_test.js