赛普拉斯:从变量中提取文本和数字

时间:2020-06-17 08:41:28

标签: cypress

我们在预订页面".ItineraryDate [datetime]:last"上有一个元素,该元素显示了行程中最后一次飞行的日期(例如Tue 7 Jul)。出于赛普拉斯测试的目的,我需要提取日期(例如7)和月份(例如Jul)。

cy.get(".ItineraryDate [datetime]:last").then($span => {
  const lastLegDate = $span.text()
})

此代码创建const Tue 7 Jul,但是我只需要使用日期和月份。你知道我怎么提取吗?

1 个答案:

答案 0 :(得分:1)

Cypress自动包含moment.js并将其公开为Cypress.moment。

引用moment formats

您可以使用Cypress.moment随时提取月份和日期。

标记

<div class="date">Tue 7 Jul</div>

测试

cy.get('.date').then(($el) => {
    cy.log('original: ' + $el.text());
    const dateString = Cypress.moment($el.text(), 'ddd D MMM')
    const month = Cypress.moment(dateString, 'ddd D MMM').format('MMMM');
    const day = Cypress.moment(dateString, 'ddd D MMM').format('D');

    cy.log(`After formatting month = ${month}`);
    cy.log(`After formatting day = ${day}`);
    expect(month).to.equal('July');
    expect(day).to.equal('7');
});

屏幕截图:

screenshot