使用Testcafe访问自定义窗口属性

时间:2019-06-20 23:09:39

标签: javascript automated-tests e2e-testing web-testing testcafe

因此,在我们的应用程序中,我们有一个名为reactMap的自定义窗口属性。因此,当您加载我们的网站并转到控制台并键入“ window.reactMap.loaded()”时,它将返回true或false。但是当我尝试通过添加以下内容在TestCafe测试中做到这一点时:

const mapLoaded = ClientFunction(() => window.reactMap.loaded());

它只是抱怨Property 'reactMap' does not exist on type 'Window'. 如何在TestCafe测试中运行这些代码?谢谢

1 个答案:

答案 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())();