/mobile-web-browser-emulator

Emulation of a Chrome-based browser on a mobile device for Node.js

Primary LanguageJavaScript

Dependency Status devDependency Status

Mobile Web Browser Emulator

Mobile Web Browser Emulator is a Node.js tool which simulates a Chrome-based browser on a mobile device. This module also allows manipulation via Selenium WebDriver. It is an easy way to test mobile web applications on mobile devices.

This module is used by the new version of the Mobile Checker by W3C.

This application works in headless mode (powered via XVFB). Using it on the server side is easy.

alt google screenshot alt w3c screenshot

Install

Start by having BrowserMob Proxy set up and running. Then run the following command

npm install mobile-web-browser-emulator

API

With Mobile Web Browser Emulator, it is easy test mobile web applications using the Selenium WebDriver API.

Emulation example:

var MobileBrowser = require('mobile-web-browser-emulator').MobileBrowser;
var mobileBrowser = new MobileBrowser();

mobileBrowser.emulate(
  // Parameters such as dimensions for tablets, smartphones or desktops.
  {
    url: 'https://www.google.com/', // URL to load. **required**
    width: 300, // Width of the device. **optional** (300 by default)
    height: 700 // Height of the device. **optional** (300 by default)
  },
	// The second parameter is a callback that takes a browser instance as an argument
	function(browser) { /* ... */ }
);

Methods on the browser object:

browser.do(function(driver) {
  // The driver object can then be used with Selenium WebDriver
});
browser.takeScreenshot('example.png');

Manipulation with Selenium example :

var MobileBrowser = require('../lib/index.js').MobileBrowser;
var mobileBrowser = new MobileBrowser();

mobileBrowser.emulate({
  url: 'https://www.google.com',
  width: 300,
  height: 700
}, function(browser) {
  browser.do(function(driver) {
    driver.getTitle().then(function(title) { // Selenium Webdriver Method
      console.log(title);
    });
  });
});

Screenshot example:

var MobileBrowser = require('../lib/index.js').MobileBrowser;
var mobileBrowser = new MobileBrowser();

mobileBrowser.emulate({
  url: 'https://www.google.com',
  width: 300,
  height: 700
}, function(browser) {
  browser.takeScreenshot(__dirname + "/../screenshot.png");
});

Licence

Copyright (c) 2014 Dominique Hazael Massieux, Guillaume Baudusseau

MIT