Cypress.dom
Cypress.dom.method()
is a collection of DOM related helper methods.
caution
There are actually dozens of methods attached to Cypress.dom
that are not
documented below. These methods are used internally by Cypress in nearly every
single built in command.
We suggest reading through the source code here to see all of the methods and what they do.
Syntax
Cypress.dom.isHidden(element)
Examples
Is attached
Returns a boolean indicating whether an element is attached to the DOM.
cy.get('button').then(($el) => {
Cypress.dom.isAttached($el) // true
})
Is descendent
Returns a boolean indicating whether an element is a descendent of another element.
cy.get('div').then(($el) => {
Cypress.dom.isDescendent($el.parent(), $el) // true
})
Is detached
Returns a boolean indicating whether an element is detached from the DOM.
cy.get('button').then(($el) => {
Cypress.dom.isDetached($el) // false
})
Is document
Returns a boolean indicating whether a node is of document type.
cy.get('p').then(($el) => {
Cypress.dom.isDocument($el) // false
})
Is DOM
Returns a boolean indicating whether an object is a DOM object.
cy.get('body').then(($el) => {
Cypress.dom.isDom($el) // true
})
Is element
Returns a boolean indicating whether an object is a DOM element.
cy.get('p').then(($el) => {
Cypress.dom.isElement($el) // true
})
Is focusable
Returns a boolean indicating whether an element can receive focus.
Cypress internally uses this method everywhere to figure out whether an element is hidden, mostly for actionability.
cy.get('input').then(($el) => {
Cypress.dom.isFocusable($el) // true
})
Is focused
Returns a boolean indicating whether an element currently has focus.
cy.get('button').then(($el) => {
Cypress.dom.isFocused($el)
})
Is hidden
Returns a boolean indicating whether an element is hidden.
Cypress internally uses this method everywhere to figure out whether an element is hidden, mostly for actionability.
cy.get('p').then(($el) => {
Cypress.dom.isHidden($el) // false
})
Is jQuery
Returns a boolean indicating whether an object is a jQuery object.
cy.get('input').then(($el) => {
Cypress.dom.isJquery($el)
})
Is scrollable
Returns a boolean indicating whether an element is scrollable.
Cypress internally uses this method everywhere to figure out whether an element can be scrolled, mostly for actionability.
cy.get('body').then(($el) => {
Cypress.dom.isScrollable($el) // true
})
Is visible
Returns a boolean indicating whether an element is visible.
cy.get('img').then(($el) => {
Cypress.dom.isVisible($el) // true
})
Tip: if a Cypress test fails with "element is not visible" error, but you
are sure the element should be visible, you can debug the visibility check
yourself by stepping through the Cypress.dom.isVisible
code, see
Debug the Element Visibility Problems in Cypress.
Is window
Returns a boolean indicating whether an object is a window object.
cy.get(window).then(($el) => {
Cypress.dom.isWindow($el) // true
})
Unwrap
Returns an array of raw elements pulled out from a jQuery object.
cy.get('body').then(($el) => {
Cypress.dom.unwrap($el)
})
Wrap
Returns a jQuery object obtained by wrapping an object in jQuery.
cy.get('p').then(($el) => {
Cypress.dom.wrap($el)
})
See also
- Read the blog post Debug the Element Visibility Problems in Cypress to see how you can call these methods from the DevTools console to step through their logic.