Puppeteer & Jest

Jest-Puppeteer allows you to run tests with Jest on browsers controlled with Puppeteer.

To get started, please install these packages:

npm install --save-dev jest-puppeteer puppeteer jest

Next, specify these settings in your Jest configuration file (jest.config.js):

module.exports = {
  rootDir: '.',
  testTimeout: 20000,
  testMatch: [
    '<rootDir>/*.spec.js'
  ],
  preset: 'jest-puppeteer'
}

Configure Jest with Puppeteer

To configure Jest Puppeteer, create a new file called jest-puppeteer.config.js and add this to the file:

module.exports = {
  connect: {
    browserWSEndpoint: 'wss://cloud.testingbot.com?key=api_key&secret=api_secret&browserName=chrome&browserVersion=latest'
  }
}

This instructs Jest and Puppeteer to connect to the TestingBot browser grid.

Specifying browser and version

To specify on which browser and version your Jest + Puppeteer test should run, you can include both a browserName and browserVersion in the browserWSEndpoint URL.

Select a browser & version

Run your first test

To create a test, create a new file called sample.spec.js and add this to the file:

describe('Google', () => {
  beforeAll(async () => {
    await page.goto('https://google.com')
  })

  it('should display google text on page', async () => {
    await expect(page).toMatch('google')
  })
})

Now you can run your first test with Puppeteer on the TestingBot cloud:

$ jest

This will open Google in a Chrome browser and verify if the word 'google' is on the page.

You should see something like this in your terminal after running the command:

PASS  ./sample.spec.js (6.503s)
  Google
    ✓ should display google text on page (81ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total

This test will also appear in your Member Dashboard.

Was this page helpful?

Looking for More Help?

Have questions or need more information?
You can reach us via the following channels: