Spec-Zone.ru › Cypress

url

Получите текущий URL страницы, которая в данный момент активна.

Это псевдоним для cy.location('href')

Синтаксис

cy.url()
cy.url(options)

Использование

Правильное использование

cy.url() // Yields the current URL as a string

Аргументы

options (Объект)

Передайте объект options, чтобы изменить поведение по умолчанию cy.url().

cy.url( options )

Опция Значение по умолчанию Описание
decode false Декодировать URL
log true Отображает команду в журнале команд
timeout defaultCommandTimeout Время ожидания cy.url() для разрешения перед снятием тайм-аута

Возвращаемое значение

  • cy.url() 'возвращает текущий URL в виде строки'

Примеры

Без аргументов

Утверждение, что URL равен http://localhost:8000/users/1/edit

// clicking the anchor causes the browser to follow the link
cy.get('#user-edit a').click()
cy.url().should('include', '/users/1/edit') // => true
cy.url().should('eq', 'http://localhost:8000/users/1/edit') // => true

Опция decode

Когда URL содержит не-ASCII символы, используйте опцию decode.

// For the curious, '사랑' means 'love' in Korean.
cy.url({ decode: true }).should('contain', '사랑')

Примечания

Сокращенная запись для href

URL — это псевдоним для cy.location('href')

cy.url() использует href под капотом.

cy.url() // these yield the same string
cy.location('href') // these yield the same string

Отличия

URL по сравнению с href

Учитывая удаленный URL, http://localhost:8000/index.html, все 3 эти утверждения одинаковы.

cy.location('href').should('include', '/index.html')

cy.location().its('href').should('include', '/index.html')

cy.url().should('include', '/index.html')

href и toString взяты из спецификации window.location.

Но вы, возможно, задаетесь вопросом, откуда берется свойство URL. Согласно спецификации window.location , на самом деле нет свойства URL в объекте location.

cy.url() существует, потому что большинство разработчиков естественным образом предполагают, что оно вернет им полный текущий URL. Мы почти никогда не ссылаемся на URL как на href.

Жестко заданные значения против использования объекта конфигурации

Вместо того, чтобы жестко задавать URL, используемый в утверждении, рекомендуется определить baseUrl в вашей конфигурации Cypress. Подробнее об этом см. в руководстве по лучшим практикам по установке глобального baseUrl.

Учитывая удаленный URL, http://localhost:8000/index.html, и baseUrl, http://localhost:8000, эти утверждения эквивалентны.

cy.url().should('eq', 'http://localhost:8000/index.html')
cy.url().should('eq', Cypress.config().baseUrl + '/index.html') // tests won't fail in case the port changes

Утверждение, что URL содержит "#users/new"

cy.url().should('contain', '#users/new')

Правила

Требования

  • cy.url() требует быть привязанным к cy .

Утверждения

  • cy.url() автоматически повторно выполнит проверку до тех пор, пока не пройдут все привязанные утверждения.

Таймауты

  • cy.url() может сработать при ожидании выполнения добавленных утверждений.

Журнал команд

Вышеперечисленные команды будут отображаться в журнале команд как:

Command Log url

При нажатии на URL в журнале команд в консоли выводится следующее:

Console Log url

История

Версия Изменения
8.4.0 decode опция добавлена
< 0.3.3 cy.url() команда добавлена

См. также

  • cy.hash()
  • cy.location()

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/url

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API