mirror of
https://github.com/cypress-io/cypress.git
synced 2026-05-18 22:28:38 -05:00
2.8 KiB
2.8 KiB
title, comments, description
| title | comments | description |
|---|---|---|
| its | true |
cy.its gets regular properties on the current subject.
If you want to call a function on the current subject, use cy.invoke.
| Returns | the value of the property |
| Timeout | cy.its cannot timeout unless you've added assertions. The assertions will retry for the duration of defaultCommandTimeout |
cy.its( propertyName )
Gets the property with the specified name.
You can also access multiple nested properties with dot notation.
Usage
Access properties
cy.wrap({foo: "bar"}).its("foo").should("eq", "bar") // true
Call the length property on the current subject
cy
.get("ul li") // this returns us the jquery object
.its("length") // calls the 'length' property returning that value
.should("be.gt", 2) // ensure this length is greater than 2
})
Access functions
You can access functions to then drill into their own properties instead of invoking them.
// Your app code
// a basic Factory constructor
var Factory = function(arg){
...
}
Factory.create = function(arg){
return new Factory(arg)
}
// assign it to the window
window.Factory = Factory
cy
.window() // get the window object
.its("Factory") // now we are on the Factory function
.invoke("create", "arg") // and now we can invoke properties on it
{% note info Testing cy.window().its('fetch') %} Check out our example recipe on testing window.fetch using cy.its() {% endnote %}
Drill into nested properties
You can additionally automatically drill into nested properties by using dot notation.
var obj = {
foo: {
bar: {
baz: "quux"
}
}
}
cy.wrap(obj).its("foo.bar.baz").should("eq", "quux") // true
Command Log
Fetch 'comments' fixture
cy
.server()
.route(/comments/, 'fixture:comments.json').as('getComments')
.get('#fetch-comments').click()
.wait('@getComments')
.its('responseBody')
.should('deep.eq', [
{id: 1, comment: 'hi'},
{id: 2, comment: 'there'}
])
The commands above will display in the command log as:
When clicking on its within the command log, the console outputs the following:

