Extract A Part Of The Current Url Using A Regular Expression

Published: 29 September 2022
on channel: gleb bahmutov
2,358
41

We can grab a part of the URL using a named capture group, then save the value using an alias. Later we can get the value using "this.alias" or "cy.get(alias)" commands.

Imagine we are trying to confirm the application URL "/sell/item10001/confirmation"

// yields a string
cy.location('pathname')
.should('match', /\/sell\/item\d+\/confirmation/)
.invoke('match', /\/sell\/item(? id \d+)\/confirmation/)
.its('groups.id', { timeout: 0 })
.should('be.a', 'string')
.as('itemId')
cy.log('printing the id').then(function () {
cy.log(`item id is: ${this.itemId}`)
})
cy.get('@itemId').then(Number).should('be.within', 1_000, 20_000)

Find the full example at https://glebbahmutov.com/cypress-exam...