Skip to main content

Navigate back or forward to the previous or next URL in the browser's history.

Syntax​

cy.go(direction)
cy.go(direction, options)

Usage​

Correct Usage

cy.go('back')

Arguments​

direction (String, Number)

The direction to navigate.

You can use back or forward to go one step back or forward. You could also navigate to a specific history position (-1 goes back one page, 1 goes forward one page, etc).

options (Object)

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

OptionDefaultDescription
logtrueDisplays the command in the Command log
timeoutpageLoadTimeoutTime to wait for cy.go() to resolve before timing out

Yields ​

  • cy.go() yields the window object after the page finishes loading.
  • It is unsafe to chain further commands that rely on the yielded window after cy.go().

Examples​

Direction​

Go back in browser's history​

cy.go('back') // equivalent to clicking back button

Go forward in browser's history​

cy.go('forward') // equivalent to clicking forward button

Number​

Go back in browser's history​

cy.go(-1) // equivalent to clicking back button

Go forward in browser's history​

cy.go(1) // equivalent to clicking forward button

Notes​

Refreshing and loading the page​

If going forward or back causes a full page refresh, Cypress will wait for the new page to load before moving on to new commands.

Cypress additionally handles situations where a page load was not caused (such as hash routing) and will resolve immediately.

Rules​

Requirements ​

  • cy.go() requires being chained off of cy.
  • cy.go() requires the response to be content-type: text/html.
  • cy.go() requires the response code to be 2xx after following redirects.
  • cy.go() requires the load load event to eventually fire.

Assertions ​

  • cy.go() will automatically wait for assertions you have chained to pass.

Timeouts ​

  • cy.go() can time out waiting for the page to fire its load event.
  • cy.go() can time out waiting for assertions you've added to pass.

Command Log​

Go back in browser's history

cy.visit('http://localhost:8000/folders').go('back')

The commands above will display in the Command Log as:

Command Log go

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

console Log go

See also​