Files
cypress/docs/source/api/commands/get.md
2017-06-09 14:04:20 -04:00

3.8 KiB

title, comments
title comments
get true

Get one or more DOM elements by selector or alias.

Syntax

cy.get(selector)
cy.get(alias)
cy.get(selector, options)
cy.get(alias, options)

Usage

cy.get() cannot be chained off any other cy commands, so should be chained off of cy for clarity.

{% fa fa-check-circle green %} Valid Usage

cy.get('.list>li')    // Yield the li's in '.list'

Arguments

{% fa fa-angle-right %} selector (String selector)

A selector used to filter matching DOM elements.

{% fa fa-angle-right %} alias (String)

An alias as defined using the {% url .as() as %} command and referenced with the @ character and the name of the alias.

Internally, Cypress keeps a cache of all aliased elements. If the element currently exists in the DOM, it is immediately returned. If the element no longer exists, Cypress will re-query the element based on the previous selector path defined before {% url .as() as %} to find it again.

{% note info %} Read about using aliases here. {% endnote %}

{% fa fa-angle-right %} options (Object)

Pass in an options object to change the default behavior of cy.get().

Option Default Notes
log true Whether to display command in Command Log
timeout defaultCommandTimeout Total time to retry getting the element

Yields

cy.get() yields the new DOM element(s) found by the command.

Timeout

cy.get() will continue to look for the elements for the duration of the defaultCommandTimeout.

Examples

Selector

Get the input element

cy.get('input').should('be.disabled')

Find the first li descendent within a ul

cy.get('ul li:first').should('have.class', 'active')

Find the the dropdown-menu and click it.

cy.get('.dropdown-menu').click()

Get in Within

cy.get() in the .within() command

Since cy.get() is chained off of cy, it always looks for the selector within the entire document. The only exception is when used inside a .within() command.

cy.get('form').within(function(){
  cy.get('input').type('Pamela')            // Only yield inputs within form
  cy.get('textarea').type('is a developer') // Only yield textareas within form
})

Alias

For a detailed explanation of aliasing, read more about aliasing here.

Get the aliased 'todos' elements

cy.get('ul#todos').as('todos')

//...hack hack hack...

//later retrieve the todos
cy.get('@todos')

Get the aliased 'submitBtn' element

beforeEach(function(){
  cy.get('button[type=submit]').as('submitBtn')
})

it('disables on click', function(){
  cy.get('@submitBtn').should('be.disabled')
})

Command Log

Get an input and assert on the value

cy.get('input[name="firstName"]').should('have.value', 'Homer')

The commands above will display in the command log as:

screen shot 2015-11-27 at 1 24 20 pm

When clicking on the get command within the command log, the console outputs the following:

screen shot 2015-11-27 at 1 24 45 pm

See also

  • {% url .as() as %}
  • {% url cy.contains() contains %}
  • {% url .find() find %}
  • within