gpt4 book ai didi

PhantomJS 有时会给出 "parse error"消息

转载 作者:行者123 更新时间:2023-12-03 08:14:12 25 4
gpt4 key购买 nike

我们公司希望通过我们的 CI 服务器开始触发我们的 QUnit 单元测试,并且正在将 PhantomJS 视为实现这一目标的一种手段。我们首先尝试通过以下脚本在幻像中打开几个 QUnit 测试页面:

var page = require('webpage').create();
var args = require('system').args;

page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
page.onError = function(msg, trace) {
var msgStack = ['ERROR: ' + msg];
if (trace) {
msgStack.push('TRACE:');
trace.forEach(function(t) {
msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function + '")' : ''));
});
}
console.error(msgStack.join('\n'));
};

page.open(args[1], function(status) {
phantom.exit();
});

没什么特别的,几乎是从 phantomJS 引用页面逐字复制的。但是,唉,这个 有时 导致以下输出:
ERROR: SyntaxError: Parse error
TRACE:
ERROR: SyntaxError: Parse error
TRACE:
ERROR: SyntaxError: Parse error
TRACE:
ERROR: SyntaxError: Parse error
TRACE:

我已经深入研究过,“解析错误”是因为 PhantomJS 认为 jQuery 变量未初始化,但问题是,我试图在 PhantomJS 中加载的页面在 Chrome、IE 和 Firefox 中运行得非常好,所以有没有我能看到的解析错误(加载 jQuery 的代码是 HEAD 标签顶部的一个无聊的 SCRIPT 标签,所以没有什么令人兴奋的)。

如果有什么不同,我们的测试是在 ASP.NET (aspx) 页面中,通过 VS2010 内置开发服务器、IIS8 Express 或 IIS 6 提供服务。我下一步是将它们转换为纯 HTML 以查看 phantom 是否可以仍然提示,但这并不是一个真正有效的解决方案,因为加载 ASPX 页面将是进一步的需求(可能使用 Phantom 进行自动化 UI 测试)。

关于什么是错的任何想法?不确定还有哪些其他信息对调试这个问题有用,但我会根据要求提供它们。我很难过(尤其是因为“解析错误”并不是最有用的错误消息)。

编辑:
这似乎与以下两个 WebKit 问题有关:
  • https://bugreports.qt.io/browse/QTBUG-16022
  • https://bugs.webkit.org/show_bug.cgi?id=58727

  • 如果我在我们的服务器上关闭 GZIP 压缩,它似乎可以正常工作,但我仍然需要进一步研究这个问题。

    最佳答案

    这是 PhantomJS 中的一个错误:http://code.google.com/p/phantomjs/issues/detail?id=930&start=300

    解决方法是暂时关闭 GZIP 压缩(或从 Phantom 发送虚假接受 header 以欺骗服务器不发送压缩内容)。

    关于PhantomJS 有时会给出 "parse error"消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13942338/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com