【问题标题】:ZombieJS - How do I call JavaScript functions or check JavaScript values?ZombieJS - 如何调用 JavaScript 函数或检查 JavaScript 值?
【发布时间】:2012-04-21 10:47:26
【问题描述】:
var Browser = require("zombie");

// Load the page from localhost
browser = new Browser()
browser.visit("http://localhost:3000/", function () {

  // Let's say the page has window.jQuery
  // How do I access it?

});

那么,我如何访问窗口和 javascript 变量?我想检查我的脚本是否正确跟踪“点击”。我想做expect(browser.document.window.myScript.click_counter).toBe 5之类的事情。

【问题讨论】:

    标签: javascript jquery zombie.js


    【解决方案1】:

    我得到了它工作以下...设置了maxWait选项

    var opts = {
        debug: false
        , runScripts: true
        , maxWait: 10
        , waitFor: 10000
    };
    
    this.browser = new Browser(opts);
    
    this.browser.visit(url, callback);
    
    this.browser.wait(function(window) {
        console.log('wait...');
    
        return window.document.querySelector("#objectid");
    }, function(e, browser) {
        console.log('wait complete ', e) ;
    });
    

    但是第二个callback 方法永远不会触发,querySelector 调用总是失败。我认为 window.document DOM 在 javascript 注入触发后不会更新。

    [编辑]

    我从browser.visit() 中删除了回调以使等待回调触发。

    this.browser.visit(url);
    

    【讨论】:

      【解决方案2】:

      这取决于您存储变量的位置。
      如果您将其存储在全局对象myScript 中,请使用:

      browser.window.myScript.click_counter
      

      如果您有类似 myScript.click_counter = 5; document.myScript = { ... } 的内容,请使用:

      browser.document.myScript.click_counter
      

      【讨论】:

      • 脚本异步加载。如何检测它何时加载?这就是我无法访问它的原因。
      • 您可以使用此处描述的browser.wait API:github.com/assaf/zombie/blob/master/doc/API.md
      • 很遗憾,它似乎不起作用。你能提供一个代码示例吗?
      【解决方案3】:

      我需要将 maxWait 提高到 100。这很奇怪,因为假设它以 ms 为单位,这很短,但以秒为单位,它的长度非常长。它不是很清楚 maxWait 的作用,但它似乎有所作为。不幸的是,我将 Behat/Mink 与 Zombie.js 一起使用,我不得不破解 Mink 驱动程序的源代码才能使其工作,这令人失望,因为我现在无法毫无问题地更新该驱动程序......

      【讨论】:

        猜你喜欢
        • 2014-06-04
        • 2012-03-28
        • 2013-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多