【问题标题】:Why is nothing in scope in the protractor debugger?为什么量角器调试器的范围内没有任何内容?
【发布时间】:2014-11-06 06:10:23
【问题描述】:

我在 OSX 上,安装了量角器 1.3.1 版。如果我将 browser.debugger() 放在我的测试中并运行

$ protractor debug test/protractor.conf.js

我进入调试器屏幕。然后我点击“c”,它似乎停在我的断点处。 但是,似乎没有任何内容在范围内,所有内容都未定义。

调试> 浏览器 ReferenceError: 浏览器未定义

如果我输入“repl”,我会进入一个节点 repl 循环(我认为?),我可以查看浏览器对象,但测试中的所有局部变量似乎都没有在范围内,它们都出现了未定义。

有什么建议吗?

【问题讨论】:

    标签: node.js debugging protractor


    【解决方案1】:

    是的,要检查变量/评估代码,您需要先去 repl。如果您的变量未在当前范围内引用,则它们可能会被 v8 优化。可能的解决方案:在代码中引用它们,添加 with({}) 块,使用 try/catch 或 some other ways

    【讨论】:

    • 加上({});上面的断点代码好像没有效果。不确定问题是否出在优化器上?
    【解决方案2】:

    您的局部变量不会显示,因为browser.debugger 不会在同一个本地范围内暂停 - 它的作用是向控制流队列添加一个命令,以便在控制流到达那里时进行调试。

    这是可取的,这样如果您的测试确实如此

    someElem.click();
    browser.debugger();
    otherElem.click();
    

    它会在点击发生后暂停,而不是在计划完成后暂停。

    如果你想调查局部变量,你仍然可以直接使用debugger;

    【讨论】:

    • 嗨,朱莉,谢谢。无论出于何种原因,当我使用普通的 npm 调试器时,我根本没有任何暂停,它只是通过测试。知道为什么会这样吗?
    猜你喜欢
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    相关资源
    最近更新 更多