让客户端脚本在zombie.js中运行

时间:2012-08-21 00:52:20

标签: zombie.js

我正在使用Zombie.js进行Cucumber-js测试,而我似乎无法运行客户端脚本。

访问该页面:

this.browser.visit("http://localhost/boic",function(e, browser,status,errors){

        console.log('status',status);
        console.log('error',errors);
        console.log('console',browser.text("H1"));
});

返回状态200,没有错误,并正确显示H1文本。但是,如果我包含一个脚本来更改页面中的H1代码:

<script>
$('H1').html('hello world');
</script>

H1文本保持不变,并且没有全局变量可以通过browser.window ...

访问

谢谢!

2 个答案:

答案 0 :(得分:1)

在调用脚本之前,您是否在页面中加载了jQuery?

还有runScripts浏览器选项,但默认为true。

但我建议运行一个外部的phantom.js进程并通过webdriver界面。仅仅因为我花了6个月的时间试图让僵尸做我想做的事情,而phantomjs让事情变得简单。 http://phantomjs.org/release-1.8.html https://github.com/LearnBoost/soda

答案 1 :(得分:1)

我同意Jon Biz。僵尸很难合作。许多使用可能包含小错误的JS库的站点会在僵尸浏览器遇到它们时导致它崩溃(我认为节点失败) - 如果你设置了runScripts选项。这使得很难用于需要外部JS的任何应用程序/站点 - 即大多数。

我还建议切换到Phantomjs。