Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Python wrapper for BrowserStack features.

Project description

Python wrapper for BrowserStack features.

Build Status codecov.io

Installation

The current stable release:

pip install browserstacker

or:

easy_install browserstacker

or from source:

$ sudo python setup.py install

Usage

To start working with BrowserStack ScreenShots API simply type:

>>> from browserstacker import ScreenShotsAPI
>>> api = ScreenShotsAPI('user', 'key')
>>> api.browsers()
[
    {
      "os": "Windows",
      "os_version": "XP",
      "browser": "chrome",
      "browser_version": "21.0",
      "device": None
    },
    {
      "os": "ios",
      "os_version": "6.0",
      "browser": "Mobile Safari",
      "browser_version": None,
      "device": "iPhone 4S (6.0)"
    }
  ....
]

Optionally you can filter the output of browsers by browser, browser_version, device, os or os_version.

>>> api.browsers(os='Windows', browser='chrome')
[
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "chrome",
      "browser_version": "22.0",
      "device": None
    },
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "chrome",
      "browser_version": "23.0",
      "device": None
    }
  ....
]

Command line:

$ browserstacker browsers -os Windows -b chrome
Available browsers:

------
browser_version: 22.0
os: Windows
browser: chrome
device: None
os_version: 8.1
------
...
Total browsers: 100

Filtration values are case insensitive and are casted to strings during filtration. E.g. you can use integers for filtration by os_version parameter. Also it is possible to filter by multiple values:

>>> api.browsers(os='Windows', browser=('chrome', 'firefox'))
[
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "chrome",
      "browser_version": "22.0",
      "device": None
    },
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "firefox",
      "browser_version": "16.0",
      "device": None
    }
  ....
]

Command line:

$ browserstacker browsers -os Windows -b chrome -b firefox
Available browsers:

------
browser_version: 22.0
os: Windows
browser: chrome
device: None
os_version: 8.1
------
...
Total browsers: 215

To generate screenshots:

>>> browser = api.browsers()[0]
>>> response = api.generate('http://www.google.com', browser)

Command line:

$ browserstacker generate http://www.google.com -os Windows -b firefox -bv 37.0 -ov XP

Here you can pass single browsers or list of them. You’ll get the job_id from response. To list available screenshots for job_id:

>>> api.list(response['job_id'])
{
    "id":"13b93a14db22872fcb5fd1c86b730a51197db319",
    "state":"done",
    "callback_url": "http://staging.example.com",
    "win_res": "1024x768",
    "mac_res": "1920x1080",
    "quality": "compressed",
    "wait_time": 5,
    "screenshots": [
        {
            "os":"Windows",
            "os_version":"XP",
            "browser":"ie",
            "browser_version":"7.0",
            "id":"be9989892cbba9b9edc2c95f403050aa4996ac6a",
            "state":"done",
            "url":"www.google.com",
            "thumb_url":"https://www.browserstack.com/screenshots/13b93a14db22872fcb5fd1c86b730a51197db319/thumb_winxp_ie_7.0.jpg",
            "image_url":"https://www.browserstack.com/screenshots/13b93a14db22872fcb5fd1c86b730a51197db319/winxp_ie_7.0.png",
            "created_at":"2013-03-14 16:25:45 UTC",
        }
    ]
}

Command line:

$ browserstacker list 13b93a14db22872fcb5fd1c86b730a51197db319

To download screenshots:

>>> api.download(response['job_id'], 'path_to_screenshots_dir')

Command line:

$ browserstacker download 13b93a14db22872fcb5fd1c86b730a51197db319 -d screenshots_dir

All screenshots will be saved in ‘path_to_screenshots_dir’. If destination kwarg is absent, then screenshots will be downloaded to current working directory. Also you can use shortcut to create & download screenshots to your local machine:

>>> response = api.make('http://www.google.com', browser, destination='path_to_screenshots_dir')

Command line:

$ browserstacker make -os Windows -b firefox -bv 37.0 -ov XP -d screenshots_dir

Command line interface

Browserstacker comes with command line interface built with Click. After installation browserstacker entry point will be available It exposes almost the same API as ScreenShotsAPI does. Does not support Python 3.2.

To use CLI you have to pass user & key directly:

$ browserstacker -u user -k key browsers
Available browsers:
...
Total browsers: 629

Or via environment variables:

$ export BROWSERSTACK_USER=user
$ export BROWSERSTACK_KEY=key
$ browserstacker browsers

Help is also available:

$ browserstacker --help
Usage: browserstacker [OPTIONS] COMMAND [ARGS]...

Options:
  -u, --user TEXT  Username on BrowserStack
  -k, --key TEXT   Access key
  -v, --verbosity  Verbosity level
  --version        Show the version and exit.
  --help           Show this message and exit.

Commands:
  download
  generate
  browsers
  list
  make

Python support

BrowserStacker supports Python 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, PyPy, PyPy3 and Jython. NOTE. CLI does not support Python 3.2.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for browserstacker, version 0.3.1
Filename, size File type Python version Upload date Hashes
Filename, size browserstacker-0.3.1-py2.py3-none-any.whl (28.2 kB) File type Wheel Python version 3.5 Upload date Hashes View hashes
Filename, size browserstacker-0.3.1.tar.gz (21.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page