如何在功能测试中访问浏览器的主要 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/