我正在 UI 测试一个包含 OpenLayers 的应用程序。由于 OpenLayers 主要用于绘制 SVG,因此并不总是可以通过 DOM 直接测试效果。
我想让地图对象在单击地图外部的元素后检查其中的变量是否设置正确。
为此,我将地图对象放在 window.mapInstance 中。
在测试期间,我尝试这样做:
someTest: client => {
// regular Nightwatch testing omitted ...
// and finally:
client.execute(
function () { return window },
[],
function (r) {
console.log(r.value.mapInstance.getView().getZoom())
client.end()
}
)
}
这给我一个错误:
Error while running .executeScript() protocol action: javascript error: circular reference
然后将 r.value 设置为错误对象,整个事情都失败了。
我究竟做错了什么?