我正在使用 PhantomJS 1.8.2 使用 JsTestDriver 运行一些 Jasmine 单元测试。使用 Chrome 测试运行良好,但使用 PhantomJS 大约有一半的时间,测试结果是没有找到测试用例。
我已将问题缩小到 PhantomJS 无法打开本地 JsTestDriver 页面 ( http://localhost:9876/capture
)。以下是如何重现这个,大约 50% 的时间,Loaded ... with status ...消息永远不会显示:
- 在本地启动 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);
});
第一行日志(Loading ...)始终显示,但来自回调的第二行仅打印了大约一半的时间。
这可能是什么原因?在网络浏览器中打开有问题的 URL 每次都可以正常工作。
有没有办法获得更多关于为什么 PhantomJS 不调用回调的信息?