Как получить значение поля ввода текста в переменную 'const' в Cypress, чтобы я мог регистрировать эту переменную с помощью cy.log (). Приведенный ниже код ничего не регистрирует, может кто-нибудь знаком с Cypress.io, пожалуйста, посоветуйте
cy.get('input[name = "email"]').then(($text)=>{
const txt = $text.text()
cy.log(txt)
})



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


От https://github.com/cypress-io/cypress/issues/630
Вы должны уметь:
cy
.get('input[name = "email"]')
.invoke('text') // for input or textarea, .invoke('val')
.then(text => {
const someText = text;
cy.log(someText);
});
Это работает для меня в тесте на следующем элементе:
<span class = "abProgress" style = "width: 0%;">100%</span>
Извините, я потерял память и ошибся. Я обновил ответ некоторым кодом непосредственно из моего рабочего теста (но поставьте свой селектор на место). Я обнаружил, что это немного привередливо, когда я разбирался в этом, и некоторые типы элементов не работали с этим, поэтому, надеюсь, это сработает для вас.
Пока не повезло, я пробовал, как показано ниже, но журнал не регистрирует значение, введенное в текстовое поле 'cy.get (' input [name = "email"] '). Invoke (' text '). Then (text => {const sometext = text; cy.log (sometext);}) '
@ Brendan, наконец разобрался, вместо invoke ('text') использовал invoke ('val'). Теперь Cypress регистрирует значение переменной ... 'cy .get (' input [name = "email"] '). Invoke (' val '). Then (val => {const sometext = val; cy.log (sometext );}) '
@soccerway приятно слышать, как выглядел элемент, с которым работал?
<input type = "text" class = "form-control" name = "email" placeholder = "email" required = "required">
В моем случае использование invoke('val') вместо invoke('text') сработало.
Напоминание о теге html
<input type = "text" class = "form-control" name = "email">
Код Кипариса
cy.get('input[name = "email"]')
.invoke('val')
.then(sometext => cy.log(sometext));
.invoke ('val') - это волшебство! Я часами пытался получить значение v-text-field. Благодарность!!
.contains ('ваше значение') у меня сработало
Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавить контекст вокруг ссылки, чтобы ваши друзья-пользователи имели некоторое представление о том, что это такое и почему оно есть, а затем процитируйте наиболее релевантную часть страницы, на которую вы ссылаетесь. если целевая страница недоступна. Ответы, которые представляют собой не более чем ссылку, могут быть удалены.
Cypress official solution How do I get an input’s value? suggests something like this code below:
cy.get('input[name = "email"]').should('have.value', val)Не совсем то, что просили, но полезно для других случаев
Если вы хотите помассировать или поработать с текстом перед утверждением:
cy.get('input').should(($input) => {
const val = $input.val()
})
Я пробовал это, теперь он выдает ошибку 'cypress_runner.js: 141304 TypeError: $ el.invoke не является функцией в Context. <anonymous>'