cy.url не возвращает строку, как ожидалось - PullRequest
0 голосов
/ 21 июня 2019

До того, как моя команда переключилась на использование хеш-маршрутизатора. Я часто реализовывал команду cy.url, чтобы убедиться, что ссылки переходят на правильные адреса URL во всем приложении. Теперь, когда мы используем маршрутизацию хеша, cy.url больше не возвращает строку, а возвращает функцию. Есть идеи, как обойти это или причины, по которым это происходит?

Я получал сообщения об ошибках через Cypress Test Runner, например: AssertionError: проверяемый объект должен быть массивом, объектом или строкой, но с неопределенным значением поэтому я зарегистрировал typeof результат console.log (typeof (cy.url)) и получил функцию, напечатанную на консоли.

   .should('be.visible')
   .click()
 console.log(typeof(cy.url))
 cy.url().then(url => {
   const categoryId = url.split(`${linkType}/`)[1]
   const category = url.split('admin/')[1]
   expect(category).to.contain(linkType)
   expect(categoryId).to.equal('new')
 })
}

1 Ответ

0 голосов
/ 15 июля 2019

Это должно привести к строке:

const returnedUrl = null
cy.url().then(url => {
  returnedUrl = url;
});

Команды Cypress являются асинхронными и должны сопровождаться .then(), чтобы получить полезные возвращаемые значения.

Вы можете обратиться к этой проблеме Github для получения дополнительной информации: https://github.com/cypress-io/cypress/issues/2150

...