intern - 如何从实习生功能测试访问全局 JavaScript 范围?

标签 intern

如何在功能测试中访问浏览器的主要 JavaScript 范围?例如,我想获取对 Dojo 小部件的引用并检查它的属性。在浏览器 JavaScript 控制台中,我可以运行:

    dijit.registry.byId("widget_id")

...并获取对该小部件的引用。但是我怎样才能在功能测试的范围内做到这一点呢?我尝试过使用 .eval() Promise 进行实验,并尝试在各种 Promise 回调中访问诸如“window”之类的对象,但没有成功。

我确信有一个简单的解决方案,但我一直找不到它。

最佳答案

好的...我可以正常工作:

.eval("window.dijit.registry.byId('MI1').id")
    .then(function(id) {
        console.log("Checking Menu Item ID: "+ id);
        assert(id == "MI1", "The menu item did not have the expected ID");
    })

但是,我注意到 eval 仅在返回字符串时才有效。例如,我还希望能够在小部件上调用“.setValue()”,但这似乎不起作用。事实上,任何返回对象的东西似乎都会产生错误。

关于intern - 如何从实习生功能测试访问全局 JavaScript 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375238/

相关文章:

javascript - 在 sinon 中 stub 依赖函数

javascript - 将 sinonjs 与实习生测试集成

javascript - 如何使用intern测试框架正确设计页面对象

javascript - 如何在 intern.js 中使用 setFindTimeout

javascript - 为 internjs 功能测试设置 cookie

javascript - 使用 Intern 通过 CSS 选择器 ID 输入字段进行选择

selenium - 如何在 CircleCI 上连接到本地 Selenium

Selenium 测试理解

实习生在没有被调用的情况下运行 foo 和 bar 测试