首页 > 解决方案 > 如何跟踪 Wikipedia 页面中以文本格式给出的 DOB 并断言一个 DOB 大于另一个使用 cypress 的 DOB?学习柏树

问题描述

这就是我正在做的事情:

describe('iCONNECT Test Suite', function () {
  it('Test Case 1', function () {
    cy.visit('https://en.wikipedia.org/wiki/The_Beatles')
    cy.get(':nth-child(8) > [href="/wiki/Paul_McCartney"]').click()
    cy.get('.mw-parser-output > :nth-child(6)').contains('18 June 1942')
    cy.go(-1)
    cy.wait(7000)
    cy.get(':nth-child(8) > [href="/wiki/John_Lennon"]').click()
    cy.get('.mw-parser-output > :nth-child(6)').contains('9 October 1940')
    expect(1940).to.be.lessThan(1942)
  })
})

标签: javascriptautomationcypress

解决方案


你可以这样做:

describe('iCONNECT Test Suite', function () {
  it('Test Case 1', function () {
    cy.visit('https://en.wikipedia.org/wiki/The_Beatles')
    cy.get('.infobox-data')
      .find('li > [href="/wiki/Paul_McCartney"]', {timeout: 7000})
      .click()
    cy.get('.infobox-data', {timeout: 6000})
      .eq(0)
      .should('be.visible')
      .invoke('text')
      .should('include', '18 June 1942') //Assert the birth day for Paul McCartney
    cy.get('.infobox-data')
      .eq(0)
      .find('span')
      .invoke('text')
      .then((text) => text.slice(2, 6))
      .as('paulBirthYear') //Get Birth year for Paul McCartney
    cy.go(-1)
    cy.get('.infobox-data')
      .find('li > [href="/wiki/John_Lennon"]', {timeout: 7000})
      .click()
    cy.get('.infobox-data', {timeout: 6000})
      .eq(0)
      .should('be.visible')
      .invoke('text')
      .should('include', '9 October 1940') //Assert the birth day for John Lennon
    cy.get('.infobox-data')
      .eq(0)
      .find('span')
      .invoke('text')
      .then((text) => text.slice(1, 5))
      .as('johnBirthYear') //Get Birth year for John Lennon
    cy.get('@paulBirthYear').then((paulBirthYear) => {
      cy.get('@johnBirthYear').then((johnBirthYear) => {
        expect(+johnBirthYear).to.be.lessThan(+paulBirthYear) //Assert John Lennon is older than Paul McCartney
      })
    })
  })
})

测试运行器执行:

测试运行器执行


推荐阅读