2

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

    dijit.registry.byId("widget_id")

...并获得对该小部件的引用。但是我怎么能在功能测试的范围内做到这一点呢?我尝试过使用 .eval() 承诺以及尝试在各种承诺回调中访问诸如“窗口”之类的对象,但无济于事。

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

4

1 回答 1

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

于 2013-12-04T16:46:39.097 回答