从cypress中的函数返回数组

Posted

技术标签:

【中文标题】从cypress中的函数返回数组【英文标题】:Return array from a function in cypress 【发布时间】:2021-09-15 12:13:37 【问题描述】:

getLinksByElementAttribute = async (element, attribute) => /**@typearray*/ let arrayhtml = []; return new Cypress.Promise((resolve) =>

        cy.get(element).each(($el, index) => 
            
            //cy.log();
            
            arrayHTML[index] = $el.attr(attribute);

            resolve(arrayHTML);   
           
           
        );

    cy.log(arrayHTML)
    );


我将“a”标记作为元素传递,将“href”作为属性传递,并且希望将使用 arrayHTML[index] 获得的网页上的所有链接一起存储在一个数组中,有关如何存储链接的任何帮助一起并将它们作为一个数组返回?

当我当前运行代码时,我在我的 web 链接的日志文件中看到 cy.log 返回值 'Array[52]',这意味着我的网页上有 52 个 'a' 元素,不知道该怎么做查看 52 个已找到元素的实际值?

【问题讨论】:

【参考方案1】:

这是因为 cypress 的异步行为。一种解决方案是使用 cy.wrap()JSON.stringify()

cy.wrap(arrayHTML)
  .then((array) => cy.log(JSON.stringify(array)));

更多信息在这里:https://docs.cypress.io/guides/core-concepts/introduction-to-cypress#Mixing-Async-and-Sync-code

【讨论】:

这很好用,有什么方法可以将此数组返回到 xyz.spec.js 文件? ,我在支持文件夹中的页面对象文件中使用此代码,谢谢

以上是关于从cypress中的函数返回数组的主要内容,如果未能解决你的问题,请参考以下文章

从函数中的 void * 参数返回数组

从 C 中的函数返回多维数组

如何从反应js中的函数返回数组

从c ++中的函数返回数组向量[重复]

如何从c ++中的函数返回数组[重复]

从 C++ 中的函数返回指向数组的指针?