首页 > 解决方案 > 赛普拉斯:从变量中提取文本和数字

问题描述

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

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

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

标签: cypress

解决方案


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

参考时刻格式

您可以使用任何方式提取月份和日期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');
});

截屏:

截屏


推荐阅读