问题是:
我正在使用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中setTimeout on console.log("Inline javascript")和1和2,可以给测试脚本一些加载的时间。除了将来自所有外部JS文件的JS代码放入一个巨大的<script>块之外,还有什么方法可以解决这个问题吗?
发布于 2013-09-18 10:54:32
您确定浏览器对象的"runScripts“选项设置为true吗?如果没有,可以使用以下语法:
browser.visit('... your page url ...', { runScripts: true }, function (e, b) {
console.log('executing callback');
});https://stackoverflow.com/questions/11712461
复制相似问题