Skip to content

Get a list of normalized Sauce Labs browsers as browser manifests.

License

Notifications You must be signed in to change notification settings

airtap/sauce-browsers

Repository files navigation

airtap-sauce-browsers

Get a list of normalized Sauce Labs browsers as browser manifests.
Replaces sauce-browsers.

npm status node Travis JavaScript Style Guide

Usage

const asb = require('airtap-sauce-browsers').promise
const manifests = await asb()

console.log(manifests)
const asb = require('airtap-sauce-browsers').callback

asb(function (err, manifests) {
  if (err) throw err

  console.log(manifests)
})

For an example of the output, see expected.json. To match browser names to your own preferred alias, you can use browser-names.

Differences from sauce-browsers

Breaking changes

  • New format
  • Does not perform matching, that's handled by airtap-match-browsers. This just returns a list of all browsers available on Sauce Labs.
  • For mobile browsers, the platform field previously mapped to the host OS (Linux or MacOS) that runs the Android emulator or iOS simulator. It now maps to either Android or iOS.
  • name: android only matches Android Browser. Previously it could match both Android Browser and Chrome for Android. If both were available on a particular Android version then Sauce Labs would pick Chrome for Android. If you want to test in Chrome for Android, you must now use name: and_chr or its more descriptive alias chrome for android.
  • iOS browsers have the name "ios_saf" (iOS Safari) rather than "ipad" or "iphone". For now, Airtap will match the old names for backwards compatibility.

Additions

  • Also includes Appium-only browsers (missing in sauce-browsers) which notably includes Android 7+ and removes the need for a workaround in Airtap.
  • For Android, airtap-sauce-browsers includes both Chrome for Android and Android Browser if available. This is not directly reflected in the Sauce Labs API; airtap-sauce-browsers infers the availability of the extra browser from api_name and version.
  • Adds capabilities for Appium (if a mobile browser), legacy WebDriver (if a desktop browser) and / or W3C WebDriver (if supported by the browser)
  • Includes metadata that says whether the browser needs the "loopback" functionality of Airtap.
  • Includes recommendedBackendVersion for Appium.

Install

With npm do:

npm install airtap-sauce-browsers

License

MIT © 2020-present Vincent Weevers