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: [
  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)
    ✓ 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.