因此,在我们的应用程序中,我们有一个名为reactMap的自定义窗口属性。因此,当您加载我们的网站并转到控制台并输入“window.reactMap.loaded()”时,它将返回 true 或 false。但是当我尝试在 TestCafe 测试中添加以下内容来执行此操作时:
const mapLoaded = ClientFunction(() => window.reactMap.loaded());
它只是提示类型“Window”上不存在属性“reactMap”。
如何在 TestCafe 测试中运行这段代码?谢谢
最佳答案
这意味着您在应用程序初始化 window.reactMap
属性之前执行 ClientFunction
。尝试按如下方式修改您的测试代码:
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())();
关于javascript - 使用 Testcafe 访问自定义窗口属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56694931/