【问题标题】:Cypress: function of click random element and storage its title to verify laterCypress:单击随机元素并存储其标题以供稍后验证的功能
【发布时间】:2021-11-13 07:03:15
【问题描述】:

这是我对 stackoverflow 社区的第一个问题,我目前正在使用 Cypress,并创建了随机单击列表中的元素的测试用例。我也在尝试从相同的函数中获取文本,我正在尝试这样做;

  • 打开主站点
  • 从元素部分选择任何元素(随机)
  • 打开所选元素的详细信息页面后,验证其标题是否与上一页中选择的标题一致
  • 问题是我无法正确返回标题我无法获取 头衔相等。我目前拥有的代码是:

    context('Select feature of site', () => {
       it('Randomly select element of elements section', () => {
           cy.visit('website url')
           cy.wait(600)
           cy.get('.element_container')
            .children()
            .eq(Math.floor(Math.random() * 44))
            .click({force: true}) 
            .each(($containerSubNewsListWrapper) => {
           cy.get($containerSubNewsListWrapper).click()
            // cy.title().should('eq','') i stucked here
           })
       }) })
       

我随机点击,但我无法同步标题,我需要为随机选择的项目检索标题并将其存储在某处,然后验证。 我很感激任何想法

【问题讨论】:

  • 你能解释一下为什么你在点击随机选择的元素后使用each()吗?
  • 您好,首先感谢您解决我的问题。非常感谢您花时间回答我的问题。我是这个领域的新手,我不能在不使用 each 的情况下随机单击子元素。我做了不必要的使用吗?
  • 如果使用 each 可以解决您的用例问题,那就没问题了。它是一个合法的柏树命令,所以你很好。

标签: javascript cypress


【解决方案1】:

要使用别名将标题保存在变量中,您可以执行以下操作:

cy.title().as('title1')

然后,当您在不同的页面内并想要验证标题是否与之前的标题匹配时,您可以执行以下操作:

cy.get("@title1").then((title1) => {
  cy.title().then((title2) => {.   //get the title of the current page
    expect(title1).to.equal(title2)
  })
})

【讨论】:

    猜你喜欢
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多