How do I simulate a mobile device in Puppeteer?
Benjamin C
benjamin c profile pic

To simulate a mobile device in Puppeteer, you can use thepuppeteer-extra library along with thepuppeteer-extra-plugin calledpuppeteer-extra-plugin-devtools. This plugin allows you to emulate various mobile devices and their capabilities. Here's a step-by-step guide on how to simulate a mobile device in Puppeteer: Step 1: Install the necessary packages First, you need to install the required packages. Open your terminal or command prompt and run the following command:

bash npm install puppeteer puppeteer-extra puppeteer-extra-plugin-devtools

Step 2: Import the required modules In your JavaScript file, import the necessary modules as follows:

1
2
3
4

const puppeteer = require('puppeteer');
const puppeteerExtra = require('puppeteer-extra');
const devtools = require('puppeteer-extra-plugin-devtools')();

Step 3: Register the plugin Next, register thedevtools plugin withpuppeteer-extra:

1
2

puppeteerExtra.use(devtools);

Step 4: Launch Puppeteer with mobile device emulation Now, you can launch Puppeteer and specify the device you want to simulate. Here's an example that emulates an iPhone X:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

(async () => {
  const browser = await puppeteerExtra.launch({
    headless: false, // Set to true if you don't want to see the browser window
    devtools: true // Enable the Chrome DevTools protocol
  });

  const page = await browser.newPage();
  await page.emulate(devtools.devices['iPhone X']);
  
  // Now you can perform actions on the page as if it were running on an iPhone X

  await browser.close();
})();

Step 5: Run the script Save the file with a.js extension (e.g.,simulate-mobile.js) and run it using Node.js:

bash node simulate-mobile.js

This will launch a new Chromium browser window that simulates the specified mobile device. You can interact with the page and perform actions as if you were using a real mobile device. You can choose from a variety of mobile devices by referring to the [devtools devices list](https://github.com/ChromeDevTools/devtools-frontend/blob/master/front_end/emulated_devices/module.json). Simply replace'iPhone X' in the example above with the desired device name. By following these steps, you can easily simulate a mobile device in Puppeteer using thepuppeteer-extra library and thepuppeteer-extra-plugin-devtools plugin.