如何在功能测试中访问浏览器的主要JavaScript范围?例如,我想获取对Dojo小部件的引用并检查它的属性。在浏览器JavaScript控制台中,我可以运行:
dijit.registry.byId("widget_id")
...并获取对该窗口小部件的引用。但是我怎样才能在功能测试的范围内做到这一点?我已经尝试过试验.eval()的承诺以及尝试在各种promise回调中访问诸如“window”之类的对象,但无济于事。
我确信有一个简单的解决方案,但我找不到它。
答案 0 :(得分:3)
好的......我有这个工作:
.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仅在返回String时才有效。例如,我也希望能够在小部件上调用“.setValue()”,但这似乎不起作用。事实上,任何返回对象的东西都会产生错误。