#javascript #node.js #async-await #cypress
Вопрос:
Я очень новичок в Cypress и пытаюсь извлечь значение из элемента для последующего использования в тесте, но мне не удается получить значение. Кто-то сказал, что мне нужно использовать async await, но это не работает, или, может быть, я делаю что-то не так. Заранее спасибо!
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
})
Комментарии:
1. Cypress не предоставляет обещаний, хотя интерфейс «с поддержкой» может выглядеть так, как будто это так, поэтому вы не можете
await
оценить значение. Прочитайте, например docs.cypress.io/guides/core-concepts/variables-and-aliases .
Ответ №1:
Вы можете использовать псевдонимы, сохранить значение и использовать его позже.
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
})
Следует помнить, что cypress очищает псевдонимы после каждого теста. Таким образом, вышесказанное будет работать только в том случае, если вы делаете все под одним it()
блоком.