#string #text #cypress
Вопрос:
Я пытаюсь получить текст из элемента с Cypress в первом тесте из первого домена, а затем ввести его во втором тесте в другом домене, вот код
Мне нужно взять код с h4.
Я реализовал следующую часть кода:
get studentCouponValue() {
return cy.get('h4').then(($span) => {
const couponValue = $span.text();
cy.log(couponValue);
})
}
в журналах я вижу правильное значение купона, но когда я пытаюсь ввести его в поле, я получаю ошибку
Цепной подход не соответствует моим ожиданиям, потому что я собираюсь использовать его в разных тестах.
Ответ №1:
Попробуйте это:
get studentCouponValue() {
return cy.get('h4').then(($span) => {
const couponValue = $span.innerText;
cy.log(couponValue);
})
}
Комментарии:
1. Та же проблема cy.type() может принимать только строку или число. Вы передали: [объект Объект] Мне нужно экспортировать значение const, я полагаю, оно работает только локально
Ответ №2:
я решил
initStudentCouponValue() {
const self = this;
return cy.get('main > .container-fluid').find('h4').then((span) => {
self.couponValue = span.text();
cy.log('First log ' self.couponValue);
return new Cypress.Promise((resolve) => {
return resolve(self.couponValue);
});
});
}
getStudentCouponValue() {
return this.couponValue;
}
в тесте, где мы хотим использовать значение
let couponValue;
admin.initStudentCouponValue().then(() => {
couponValue = admin.getStudentCouponValue()
});
а позже мы сможем использовать
coupoValue
для ввода