Files
cypress/docs/source/api/commands/get.md
T
2017-05-19 12:01:36 -04:00

3.6 KiB

title, comments, description
title comments description
get true

Get one or more DOM elements by selector or alias.

cy.get supports all CSS based selectors. It is analogous to jQuery's $(...) in that any selector you pass to jQuery you can also pass to cy.get.

Returns the new DOM element(s) found by the command.
Timeout cy.get will retry for the duration of the defaultCommandTimeout

cy.get( selector )

Finds one or more DOM elements based on the selector.

cy.get( alias )

{% note info New to Cypress? %} Read about using aliases first. {% endnote %}

You can pass in the @ character and the name of an alias as a parameter to find an aliased element.

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 to find it again.

Options

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

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

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

Selector Usage

Find the element with an id of main

cy.get("#main")

Find the first li descendent within a ul

cy.get("ul li:first")

Find the element with class dropdown-menu and click it.

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

  // Break out of the previous command chain and
  // query for #search from the root document.
  .get("#search").type("mogwai")

Reset the current scope in a cy.within

// Find form and scope all new queries to within form.
cy.get("form").within(function(){
  cy
    // Find the input within form and type Pamela
    .get("input").type("Pamela")
    // Find the element textarea within form and type in it
    .get("textarea").type("is a developer")
})

Alias Usage

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")

Alias the submitBtn in a beforeEach

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

Related