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

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

因此,在我们的应用程序中,我们有一个名为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/

相关文章:

javascript - 如何将 JSON 排序为值 a-z - React Native

javascript - 期望选定的文本

testing - 如何同时测试两个不同的测试组?

testing - ProtractorJS 测试新的 LI 元素是否已附加到 UL

javascript - 如何在 Indesign 中更改文本框的创建顺序

javascript - 使用内部对象 javascript 将平面数据转换为分层数据

javascript - 从 Playstation 官方网站抓取奖杯数据

testing - 学习 GEB 和 Spock

Selenium 测试超时不会停止测试 PHPUnit 3.6.10 Selenium RC 2.19.0

automated-tests - 如果我的所有 SoapUI 测试套件在不同的项目下,有没有一种方法可以一次运行它们?