Math Cypress如何在函数中使用页面上的元素数

Math Cypress如何在函数中使用页面上的元素数,math,random,gherkin,cypress,Math,Random,Gherkin,Cypress,我是cypress的新手,正在尝试通过将我们当前的一些行为测试转换为cypress来学习它。我们的一个场景检查网站多个“列表”页面上的文章链接,步骤定义为“我点击随机文章” 这个步骤定义 获取页面上的文章链接数 将其用作随机数范围的上限 然后使用该随机数来定位相应的文章链接 使用cypress和cucumber插件,我有了这个半成品 Then(/^I click on a random article$/, () => { let num = Math.floor(Math.rand

我是cypress的新手,正在尝试通过将我们当前的一些行为测试转换为cypress来学习它。我们的一个场景检查网站多个“列表”页面上的文章链接,步骤定义为“我点击随机文章”

这个步骤定义

  • 获取页面上的文章链接数
  • 将其用作随机数范围的上限
  • 然后使用该随机数来定位相应的文章链接
使用cypress和cucumber插件,我有了这个半成品

Then(/^I click on a random article$/, () => {

let num = Math.floor(Math.random() * 10)

cy.get(‘.article_link’)
    .eq(num).click()
})
问题是页面上的文章数量可能会有所不同,但我没有找到一种方法将这些不同数量的文章传递给数学函数,而是使用“半”安全上限10。

您可以使用
.its('length')
获取从
.get()
调用返回的元素数量

我认为这将满足您的需求:

cy.get(‘.article_link’).its('length').then(numLinks => {
  let num = Math.floor(Math.random() * numLinks)
  cy.get(‘.article_link’)
    .eq(num)
    .click()
})