webpage.open()从不调用回调

时间:2013-03-13 07:37:14

标签: jasmine phantomjs js-test-driver

我正在使用PhantomJS 1.8.2使用JsTestDriver运行一些Jasmine单元测试。使用Chrome可以很好地进行测试,但使用PhantomJS的时间大约是一半,测试结果是没有找到测试用例。

我已将问题缩小到PhantomJS,无法打开本地JsTestDriver页面(http://localhost:9876/capture)。以下是如何重现这一点,大约50%的时间,已加载...状态... 消息永远不会显示:

  • 在本地启动JsTestDriver服务器
  • 运行phantomjs phantomjs-jstd-bridge.js

文件phantomjs-jstd-bridge.js如下所示:

var page = require('webpage').create();
var url = 'http://localhost:9876/capture';
console.log('Loading ' + url);
page.open(url, function(status) {
  console.log('Loaded ' + url + ' with status ' + status);
});

始终显示第一个日志行(正在加载... ),但来自回调的第二行仅打印了大约一半的时间。

原因可能是什么?在Web浏览器中打开相关URL每次都可以正常工作。

有没有办法获得有关为什么PhantomJS不会调用回调的更多信息?

1 个答案:

答案 0 :(得分:1)

查看Troubleshooting wiki页面中提到的一些提示。特别有用的是跟踪网络传输活动,因为它可能指示某些资源是否未正确发送或其他类似问题。