【问题标题】:zombie.js visit() calling back too early (using browserify)过早的zombie.js visit() 回调(使用browserify)
【发布时间】:2011-11-25 22:41:27
【问题描述】:

我使用zombie 测试主干应用程序,当我使用zombie.visit 时,zombie 在页面上的所有脚本加载之前调用誓言回调,因此我的主干应用程序没有加载。但是,如果我等待“完成”事件,即browser.on 'done', @callback,那么我的主干应用程序会在调用回调之前加载。

是否要让访问函数仅在收到“完成”事件后回调?

PS 我使用 browserify 加载相当大的脚本,包括主干/下划线/jquery 和其他 jquery 插件

【问题讨论】:

    标签: backbone.js zombie.js


    【解决方案1】:

    我遇到了同样的事情,但奇怪的是,我使用了你的一些其他建议来使用“完成”来找出一种等待文档完全加载的方法(包括任何从 JS 东西动态注入的东西!) .

    it('should have the correct title', function() {
        browser.on('done', function(doc) {
            console.log("DONE finally finito..");
            //console.log(browser.html());
            expect(doc.document.title).toMatch('.*Login'); 
            expect(doc.document.title).not.toEqual('XXXXX');
            asyncSpecDone(); 
        });
        browser.visit(LOGIN, function(err, doc) {
        });
        asyncSpecWait();
    });
    

    其中 LOGIN 是我的登录页面的 URL。 browser.html() 打印出整个页面,我看到了动态插入的元素。 FWIW,我的应用程序正在使用 express.js 动态编译的 node .ejs 文件;但这很可能适用于您想用僵尸测试的任何动态注入页面。

    在我看来,这看起来像是一种反模式,如果作者纠正我或发布替代方案,我会很高兴。但是,这是一种解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-14
      • 2016-12-17
      • 2014-03-10
      • 1970-01-01
      • 2011-03-22
      • 2012-10-31
      • 2015-12-04
      • 2013-05-28
      相关资源
      最近更新 更多