Obtenga el global window.location
objeto de la página que está actualmente activa.
Sintaxis
cy.location() cy.location(key) cy.location(options) cy.location(key, options)
Uso
Uso Correcto
cy.location() // Get location object cy.location('host') // Get the host of the location object cy.location('port') // Get the port of the location object
Argumentos
llave (Cuerda)
Una clave en el objeto de ubicación. Devuelve este valor en lugar del objeto de ubicación completo.
opciones (Objeto)
Pase un objeto de opciones para cambiar el comportamiento predeterminado de cy.location()
.
Opción | Defecto | Descripción |
---|---|---|
log |
true |
Muestra el comando en el Registro de comandos |
timeout |
defaultCommandTimeout |
Es hora de esperar cy.location() para resolver antes de que se agote el tiempo
|
Rendimientos
cy.location()
produce el objeto de ubicación con las siguientes propiedades:
hash
host
hostname
href
origin
pathname
port
protocol
search
toString
Cuando se le da un key
argumento:
-
cy.location()
produce el valor de la propiedad de ubicación como una cadena
Ejemplos de
Sin argumentos
Hacer afirmaciones sobre cada propiedad de la ubicación
cy.visit('http://localhost:8000/app/index.html?q=dan#/users/123/edit') cy.location().should((loc) => { expect(loc.hash).to.eq('#/users/123/edit') expect(loc.host).to.eq('localhost:8000') expect(loc.hostname).to.eq('localhost') expect(loc.href).to.eq( 'http://localhost:8000/app/index.html?q=dan#/users/123/edit' ) expect(loc.origin).to.eq('http://localhost:8000') expect(loc.pathname).to.eq('/app/index.html') expect(loc.port).to.eq('8000') expect(loc.protocol).to.eq('http:') expect(loc.search).to.eq('?q=dan') expect(loc.toString()).to.eq( 'http://localhost:8000/app/index.html?q=brian#/users/123/edit' ) })
Verifique la ubicación de los parámetros de consulta y el nombre de la ruta
Podemos ceder el objeto de ubicación dentro de un .should()
comando y trabajar con él directamente.
cy.get('#search').type('niklas{enter}') cy.location().should((loc) => { expect(loc.search).to.eq('?search=niklas') expect(loc.pathname).to.eq('/users') })
Llave
Afirmar que una redirección funciona
Agarra solo el pathname
y agregue una afirmación.
cy.visit('http://localhost:3000/admin') cy.location('pathname').should('eq', '/login')
Notas
Ubicación nativa
No es necesario usar window.location
Cypress normaliza automáticamente el cy.location()
comando y elimina los valores y propiedades extraños que se encuentran en window.location
. Además, el objeto literal producido por cy.location()
es un literal de objeto básico, no el especial window.location
objeto.
Al cambiar propiedades en el real window.location
, obliga al navegador a navegar fuera. En Cypress, el objeto generado es un objeto simple, por lo que cambiar sus propiedades no tendrá ningún efecto en la navegación.
Salida de consola de window.location
cy.window().then((win) => { console.log(win.location) })
Salida de consola de .location()
cy.location().then((loc) => { console.log(loc) })
Normas
Requisitos
-
cy.location()
requiere estar encadenado fuera decy
.
Afirmaciones
-
cy.location()
automáticamente rever hasta que todas las afirmaciones encadenadas hayan pasado
Tiempos de espera
-
cy.location()
puede agotar el tiempo de espera para que se aprueben las afirmaciones que ha agregado.
Registro de comandos
Afirmar en el href de la ubicación
cy.location().should((loc) => { expect(loc.href).to.include('commands/querying') })
Los comandos anteriores se mostrarán en el Registro de comandos como:
Al hacer clic en location
dentro del registro de comandos, la consola genera lo siguiente:
Ver también
cy.hash()
cy.url()