Files
cypress/docs/source/api/commands/get.md
T
2017-05-31 15:36:33 -04:00

3.8 KiB

title, comments, description
title comments description
get true

Get one or more DOM elements by selector or alias.

Syntax

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

Usage

.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')  

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 .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 .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 .get().

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

Yields

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

Timeout

.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 .dropdown-menu and click it.

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

Get Within

.get() in a .within()

Since .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') // Get the input within form
  cy.get('textarea').type('is a developer') // Find the textarea within form
})

Alias

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

Retrieve aliased todos elements

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

//...hack hack hack...

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

Get the submitBtn

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