Cypress, как проверить текст, введенный в поле? - PullRequest
0 голосов
/ 19 февраля 2020

Я могу проверить, появляется ли текст "где-то" на странице результатов с помощью

it.only('can verify an input element has certain text typed into it', function() {
  cy.visit('http://google.com')
  cy.get("input[name=q]").type('abc123{enter}')  // with or without the {enter}
  cy.contains('abc123') // Anywhere on the page :(
})  

, но как проверить, что я набираю текст в текстовом поле ввода ?

Я пытался связать элемент с

it.only('can verify an input element has certain text typed into it', function() {
  cy.visit('http://google.com')
  cy.get("input[name=q]").type('abc123{enter}')
  cy.get("input[name=q]").contains('abc123')
})  

, но получаю

CypressError: Timed out retrying: Expected to find content: 'abc123' within the element: <input.gLFyf.gsfi> but never did.

Я пытался cy.get("input[name=q]").contains('abc123') и
cy.contains('input[name=q]', 'abc123')
, но оба раза потерпеть неудачу.

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Измените .contains на .should('have.value'...

cy.get("input[name=q]").type('abc123{enter}')
cy.get("input[name=q]").should('have.value', 'abc123')
0 голосов
/ 20 февраля 2020

Вам может не понравиться эта идея, но вот только предложение, поэтому вам не нужно постоянно звонить cy.get каждый раз.

Вы всегда можете установить постоянное значение для вашего входного имени (может быть во внешнем файле) так:

export const inputField = () => cy.get('input[name=q]');

Это будет выполняться при каждом вызове inputField.

так что ваш звонок будет:

inputField.type('abc123{enter}').should('have.value', 'abc123');

Это просто нечто большее, чем просто настройка, так как я знаю, что вы решили проблему самостоятельно, но вышеприведенный способ довольно неплох так что вам не нужно продолжать делать cy.get на одном поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...