【发布时间】:2026-01-25 08:05:03
【问题描述】:
问题:
我正在使用zombie.js 来测试我的客户端javascript,但我遇到了问题。 Zombie.js 不提供同步的<script> 标签执行,实际上似乎根本不执行外部 JS 文件。一项基本测试证实了这一点:
<script type="text/javascript" src="test1.js"></script>
<script type="text/javascript" src="test2.js"></script>
<script type="text/javascript" src="test3.js"></script>
<script type="text/javascript">
console.log("Inline javascript.");
</script>
每个 test#.js 包含一行:console.log("TEST#.JS");
当我在常规浏览器中呈现它时,控制台会显示预期的:
TEST1.JS
TEST2.JS
TEST3.JS
Inline javascript.
但是当我用zombie.js 运行它时,我只看到一行Inline javascript.
这是我试图解决的问题:
- 使用
document.createElement将脚本标签动态附加到文档中 - 使用
document.write将脚本块添加到html中 - 在
console.log("Inline javascript")上使用setTimeout并结合 1 和 2 来给测试脚本一些加载时间。
除了将我所有外部 JS 文件中的 JS 代码放入一个巨大的 <script> 块之外,还有什么办法可以解决这个问题?
【问题讨论】:
-
您是否考虑过 PhantomJS 作为 Zombie 的替代品?
-
是的,我从 PhantomJS 开始,但有几个错误(即 navigator.onLine 始终为 false 等)让我远离它。
标签: javascript zombie.js