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

getLinksByElementAttribute = async (element, attribute) => { /**@type{array}*/ 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 个已找到元素的实际值?

【问题讨论】:

    标签: javascript jquery arrays cypress


    【解决方案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 文件? ,我在支持文件夹中的页面对象文件中使用此代码,谢谢
    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 2015-02-09
    • 2015-10-12
    • 2014-08-29
    • 1970-01-01
    • 2013-05-15
    • 2017-01-26
    相关资源
    最近更新 更多