I’m very new in Cypress and I’m trying to take a value from an element to use after in the test, but I can’t manage to get the value. Someone said that I need to use async await, but it is not working or maybe I’m doing something wrong. Thanks in advance!
it.only('should access Time Worked section and insert same Staff Complement value, but negative as Flexitime', function () { let timeValue = 0; cy.get('[data-tag="staff-complement-input"] > div > span').invoke('text').then(text => +text).then(($val) => { // $val = 420 timeValue = $val; cy.log(timeValue) //420 }) cy.log(timeValue) // 0 // need timeValue to be 420 })
Advertisement
Answer
You can use aliases and save the value and use it later.
cy.get('[data-tag="staff-complement-input"] > div > span') .invoke("text") .then((text) => +text) .as("someNum") cy.get("@someNum").then((someNum) => { cy.log(someNum) //420 })
One point to remember is that cypress clears aliases after every test. So the above will only work if you are doing everything under one it()
block.