因此,在我们的应用程序中,我们有一个名为reactMap的自定义窗口属性。因此,当您加载我们的网站并转到控制台并键入“ window.reactMap.loaded()”时,它将返回true或false。但是当我尝试通过添加以下内容在TestCafe测试中做到这一点时:
const mapLoaded = ClientFunction(() => window.reactMap.loaded());
它只是抱怨Property 'reactMap' does not exist on type 'Window'.
如何在TestCafe测试中运行这些代码?谢谢
答案 0 :(得分:2)
这意味着您在应用程序初始化ClientFunction
属性之前执行window.reactMap
。尝试如下修改测试代码:
const waitForProperty = ClientFunction(() => {
return new Promise(function (resolve, reject){
var intervalId = null;
var timeoutId = null;
var checkCondition = function () {
return window.reactMap;
}
timeoutId = window.setTimeout(function () {
window.clearInterval(intervalId);
if (checkCondition())
resolve();
else
reject();
}, 10000);
intervalId = window.createInterval(function (){
if (checkCondition()) {
window.clearInterval(intervalId);
resolve();
}
}, 1000);
});
});
await waitForProperty();
const mapLoaded = await ClientFunction(() => window.reactMap.loaded())();