Как получить значение поля ввода текста в константу и зарегистрировать это значение в Cypress.io

Как получить значение поля ввода текста в переменную 'const' в Cypress, чтобы я мог регистрировать эту переменную с помощью cy.log (). Приведенный ниже код ничего не регистрирует, может кто-нибудь знаком с Cypress.io, пожалуйста, посоветуйте

cy.get('input[name = "email"]').then(($text)=>{
        const txt = $text.text()
        cy.log(txt)

    })
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
36
0
46 707
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

От 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>

Я пробовал это, теперь он выдает ошибку 'cypress_runner.js: 141304 TypeError: $ el.invoke не является функцией в Context. <anonymous>'

soccerway 10.08.2018 22:53

Извините, я потерял память и ошибся. Я обновил ответ некоторым кодом непосредственно из моего рабочего теста (но поставьте свой селектор на место). Я обнаружил, что это немного привередливо, когда я разбирался в этом, и некоторые типы элементов не работали с этим, поэтому, надеюсь, это сработает для вас.

Brendan 10.08.2018 23:17

Пока не повезло, я пробовал, как показано ниже, но журнал не регистрирует значение, введенное в текстовое поле 'cy.get (' input [name = "email"] '). Invoke (' text '). Then (text => {const sometext = text; cy.log (sometext);}) '

soccerway 11.08.2018 00:50

@ Brendan, наконец разобрался, вместо invoke ('text') использовал invoke ('val'). Теперь Cypress регистрирует значение переменной ... 'cy .get (' input [name = "email"] '). Invoke (' val '). Then (val => {const sometext = val; cy.log (sometext );}) '

soccerway 13.08.2018 11:12

@soccerway приятно слышать, как выглядел элемент, с которым работал?

Brendan 13.08.2018 16:58

<input type = "text" class = "form-control" name = "email" placeholder = "email" required = "required">

soccerway 13.08.2018 21:39
Ответ принят как подходящий

В моем случае использование 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. Благодарность!!

krankuba 04.02.2021 14:40

.contains ('ваше значение') у меня сработало

Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавить контекст вокруг ссылки, чтобы ваши друзья-пользователи имели некоторое представление о том, что это такое и почему оно есть, а затем процитируйте наиболее релевантную часть страницы, на которую вы ссылаетесь. если целевая страница недоступна. Ответы, которые представляют собой не более чем ссылку, могут быть удалены.

Yunnosch 10.03.2020 12:02

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)

Не совсем то, что просили, но полезно для других случаев

Haroldo_OK 24.06.2021 14:46

Если вы хотите помассировать или поработать с текстом перед утверждением:

cy.get('input').should(($input) => {
  const val = $input.val()
})

использование-кипарис-часто задаваемые вопросы

Другие вопросы по теме