Skip to main content

Django app to run selenium webdriver tests.

Project description

# django-webdriver

Django app to run selenium tests with webdriver

## Features

Extends the feature of [django-nose](https://github.com/django-nose/django-nose) to manage the selenium tests.

## Installation

You can get django-webdriver from PyPi:
```bash
pip install django-webdriver
```

To use it you should add it to your `INSTALLED_APPS` in `settings.py`.
Django-webdriver uses django-nose to run the tests, so you should also configure django-nose in your project:

```python
INSTALLED_APPS = (
...
'django_webdriver',
'django_nose',
...
)

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
```

## Usage

With django-webdriver you may run just unit tests or just selenium tests or the both.

### Launch tests

* `--selenium-only`: only run selenium tests
* `--with-selenium`: run all tests (unit and selenium)
* ` `: will only run unit test.

### Configure

#### Local

Add `--webdriver=` to specify webdriver you want to use locally.

It can be one of these for example (be careful to case):
* Firefox
* PhantomJS
* Chrome
* ...
* [More here](http://selenium-python.readthedocs.org/en/latest/api.html#webdriver-api)

##### Example

```bash
./manage.py test --with-selenium --webdriver=PhantomJS
```

#### Remote

* Add `--remote_selenium_provider=` to specify which remote grid you want to use.
* Add configuration for each grid in your `settings.py`:
```python
DJANGO_WEBDRIVER_SETTINGS = {
'remote_providers': {
'grid': {
'url': 'http://192.168.0.18:4444/wd/hub',
# will use 'default' capabilities
},
'sauce-lab': {
'url': 'http://my_url',
'capabilities': 'ie',
},
},
'remote_capabilities': {
'default': [
{
'browser': 'firefox',
'platform': 'WINDOWS'
},
],
'ie': [
{
'browser: 'internet explorer',
'version': 6,
}
]
}
}
```

### Write selenium tests

To write selenium tests you have to name the files `tests_selenium.py`. You may also use a python module name `tests_selenium` but you have to define your test files in the `__init__.py`.

Your selenium test classes have to inherit of `django_webdriver.base.DjangoWebdriverTestCase`.
You have not to manage the life cycle of the webdriver in the setUp or in the tearDown methods. The webdriver is instanciated before the setUp and it is stoped after the tearDown, so you may use it in these methods.

```python
from django_webdriver.base import DjangoWebdriverTestCase

class TestSelenium(DjangoWebdriverTestCase):

def setUp(self):
self.webdriver.get('http://wwww.github.com') #it's ok
self.webdriver = '...' #it's forbiden because you break the life cycle.

def tearDown(self):
self.webdriver... #it's ok
self.webdriver.quit() #it's forbiden because you break the life cycle too.

def test_google(self):
url = 'https://www.google.fr/'
self.webdriver.get(url)
self.assertEqual(url, self.webdriver.current_url)

```

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

django-webdriver-0.1.2.tar.gz (10.8 kB view details)

Uploaded Source

File details

Details for the file django-webdriver-0.1.2.tar.gz.

File metadata

File hashes

Hashes for django-webdriver-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ddbecd298ac4412f76eb3e0f050073a65e9f016db29019537f1e2ec25e2edf68
MD5 6b0436c45bd640bd7d40da9a0d25679b
BLAKE2b-256 215118b6eb6d6af4cec800939bb15245f9597e5a9f19f2e8456f0e8f8034608e

See more details on using hashes here.

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