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()может сработать при ожидании выполнения добавленных утверждений.
Журнал команд
Вышеперечисленные команды будут отображаться в журнале команд как:
При нажатии на URL в журнале команд в консоли выводится следующее:
История
| Версия | Изменения |
|---|---|
| 8.4.0 |
decode опция добавлена |
| < 0.3.3 |
cy.url() команда добавлена |
См. также
© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/url