从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中的函数返回数组的主要内容,如果未能解决你的问题,请参考以下文章