Cypress.io - тайм-аут при наборе текста из переноса - PullRequest
0 голосов
/ 01 октября 2018

Я новичок в Cypress и Javascript.

У меня есть обернутый объект JSON и я установил псевдоним для него в функции beforeEach.Я пытаюсь установить поле ввода со свойством в объекте JSON.

beforeEach(function () {
    cy.wrap({username:"richard@cypresstest.com"}).as('userLoginWrap');
  })

it.only('should log user in successfully', function () {

  cy.get('@userLoginWrap').its('username').should('eq', 'richard@cypresstest.com'); // Passed
  
  cy.get('#usernameField')
      .type(cy.get('@userLoginWrap').its('username')); // Error: Cypress command timeout of '4000ms' exceeded.
})

Как мне обойти это?

Спасибо.

1 Ответ

0 голосов
/ 02 октября 2018

cy.type( text ) принимает строку.Вы передаете ей команду cy, которая не является синхронной.

Вы можете сделать что-нибудь сумасшедшее, как это (не проверено):

beforeEach(function () {
  cy.wrap({username:"richard@cypresstest.com"}).as('userLoginWrap');
})

it.only('should log user in successfully', function () {
  let username;
  cy.get('@userLoginWrap').its('username').should('eq', 'richard@cypresstest.com')
    .then( obj => username = obj.username );

  cy.get('#usernameField')
      .type( username );
})

Но я бы предпочел сохранить "richard@cypresstest.com" до константы --- таким образом, вам не придется повторять это, как вы делаете сейчас, плюс избегайте махинаций с сохранением переменных с помощью команд .then().

В качестве альтернативы используйте светильники .

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