Skip to main content

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.list_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 list_browsers by browser, browser_version, device, os or os_version.

>>> api.list_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 list_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.list_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 list_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.list_browsers()[0]
>>> response = api.generate_screenshots('http://www.google.com', browser)

Command line:

$ browserstacker generate_screenshots 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_screenshots(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_screenshots 13b93a14db22872fcb5fd1c86b730a51197db319

To download screenshots:

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

Command line:

$ browserstacker download_screenshots 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_screenshots('http://www.google.com', browser, destination='path_to_screenshots_dir')

Command line:

$ browserstacker make_screenshots -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 list_browsers
Available browsers:
...
Total browsers: 629

Or via environment variables:

$ export BROWSERSTACK_USER=user
$ export BROWSERSTACK_KEY=key
$ browserstacker list_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_screenshots
  generate_screenshots
  list_browsers
  list_screenshots
  make_screenshots
  save_screenshotove

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.

Project details


Download files

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

Source Distribution

browserstacker-0.3.tar.gz (21.1 kB view hashes)

Uploaded Source

Built Distribution

browserstacker-0.3-py2.py3-none-any.whl (27.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page