You can use create-next-app with the with-cypress example to quickly get started.

npx create-next-app@latest --example with-cypress with-cypress-app
You can use create-next-app with the with-cypress example to quickly get started.

npx create-next-app@latest --example with-cypress with-cypress-app
You will have noticed that running Cypress so far has opened an interactive browser which is not ideal for CI environments. You can also run Cypress headlessly using the cypress run command:

// package.json

"scripts": {
  //...
  "cypress": "cypress open",
  "cypress:headless": "cypress run",
  "e2e": "start-server-and-test start http://localhost:3000 cypress",
  "e2e:headless": "start-server-and-test start http://localhost:3000 cypress:headless"
}
To get started with Cypress, install the cypress package:

npm install --save-dev cypress
Add Cypress to the package.json scripts field:

"scripts": {
  "dev": "next dev",
  "build": "next build",
  "start": "next start",
  "cypress": "cypress open",
}
Add a test to check your navigation is working correctly:

// cypress/integration/app.spec.js

describe('Navigation', () => {
  it('should navigate to the about page', () => {
    // Start from the index page
    cy.visit('http://localhost:3000/')

    // Find a link with an href attribute containing "about" and click it
    cy.get('a[href*="about"]').click()

    // The new url should include "/about"
    cy.url().should('include', '/about')

    // The new page should contain an h1 with "About page"
    cy.get('h1').contains('About Page')
  })
})
Run Cypress for the first time to generate examples that use their recommended folder structure:

npm run cypress
Assuming the following two Next.js pages:

// pages/index.js
import Link from 'next/link'

export default function Home() {
  return (
    <nav>
      <Link href="/about">
        <a>About</a>
      </Link>
    </nav>
  )
}

// pages/about.js
export default function About() {
  return (
    <div>
      <h1>About Page</h1>
    </div>
  )
}
The fastest way to get started, is to use create-next-app with the with-playwright example. This will create a Next.js project complete with Playwright all set up.

npx create-next-app@latest --example with-playwright with-playwright-app
Add a test to verify that your navigation is working correctly:

// e2e/example.spec.ts

import { test, expect } from '@playwright/test'

test('should navigate to the about page', async ({ page }) => {
  // Start from the index page (the baseURL is set via the webServer in the playwright.config.ts)
  await page.goto('http://localhost:3000/')
  // Find an element with the text 'About Page' and click on it
  await page.click('text=About Page')
  // The new url should be "/about" (baseURL is used there)
  await expect(page).toHaveURL('http://localhost:3000/about')
  // The new page should contain an h1 with "About Page"
  await expect(page.locator('h1')).toContainText('About Page')
})

Recommend

Nextjs Middleware Execution Order

Nextjs Middleware API

Nextjs Middleware Usage

Matplotlib Overview of axisartist toolkit FloatingAxis

Matplotlib Overview of axisartist toolkit GridHelper

Matplotlib Overview of axisartist toolkit Rotation and Alignment of TickLabels Adjusting pad

Matplotlib Overview of axisartist toolkit Rotation and Alignment of TickLabels

Matplotlib Overview of axisartist toolkit HowTo

Matplotlib Overview of axisartist toolkit Default AxisArtists

Matplotlib Overview of axisartist toolkit axisartist axisartist with ParasiteAxes

Matplotlib Overview of axisartist toolkit axisartist

Matplotlib The mplot3d Toolkit Tri-Surface plots

Matplotlib The mplot3d Toolkit

Matplotlib Overview of mpl_toolkits.axes_grid1 AxesDivider

Matplotlib Overview of mpl_toolkits.axes_grid1 axes_grid1 RGBAxes

Matplotlib Overview of mpl_toolkits.axes_grid1 axes_grid1 InsetLocator

Matplotlib Overview of mpl_toolkits.axes_grid1 axes_grid1 ParasiteAxes Example 2. twin

Matplotlib Overview of mpl_toolkits.axes_grid1 axes_grid1 colorbar whose height (or width) in sync with the master axes scatter_hist.py with AxesDivider

Matplotlib Overview of mpl_toolkits.axes_grid1 axes_grid1 AxesDivider Class

Matplotlib Image tutorial Plotting numpy arrays as images Array Interpolation schemes

Matplotlib Image tutorial Plotting numpy arrays as images Examining a specific data range

Matplotlib Image tutorial Plotting numpy arrays as images Color scale reference

Matplotlib Image tutorial Plotting numpy arrays as images Applying pseudocolor schemes to image plots

Matplotlib Image tutorial Plotting numpy arrays as images

Matplotlib Image tutorial Importing image data into Numpy arrays

Matplotlib Image tutorial Startup commands

Matplotlib Pyplot tutorial Logarithmic and other nonlinear axes

Matplotlib Pyplot tutorial Working with text Annotating text

Matplotlib Pyplot tutorial Working with text Using mathematical expressions in text

Matplotlib Pyplot tutorial Working with text

Matplotlib Pyplot tutorial Working with multiple figures and axes

Matplotlib Pyplot tutorial Controlling line properties

Matplotlib Pyplot tutorial Plotting with categorical variables

Matplotlib Pyplot tutorial Plotting with keyword strings

Matplotlib Pyplot tutorial Intro to pyplot Formatting the style of your plot

Matplotlib Pyplot tutorial Intro to pyplot

Matplotlib Basic Usage Working with multiple Figures and Axes

Matplotlib Basic Usage Color mapped data

Matplotlib Basic Usage Axis scales and ticks Additional Axis objects

Matplotlib Basic Usage Axis scales and ticks Plotting dates and strings

Matplotlib Basic Usage Axis scales and ticks Tick locators and formatters

Matplotlib Basic Usage Axis scales and ticks Scales

Matplotlib Basic Usage Labelling plots Legends

Matplotlib Basic Usage Labelling plots Annotations

Matplotlib Basic Usage Labelling plots Using mathematical expressions in text

Matplotlib Basic Usage Labelling plots Axes labels and text

Matplotlib Basic Usage Styling Artists Linewidths, linestyles, and markersizes

Matplotlib Basic Usage Styling Artists Colors

Matplotlib Basic Usage Styling Artists

Matplotlib Basic Usage Coding styles Making a helper functions