Bdd with Python, Behave and WebDriver


Behave is a python bdd plugin which makes it easy to write tests in a natural language style
To get started make sure you have installed behave

$ sudo pip install behave


You are now ready to create your first story and run it on our Selenium grid
Run the test with

$ behave


Example feature features googlefeature

Feature: testing google

  Scenario: visit google and check
     When we visit google
     Then it should have a title "Google"

Example steps features steps stepspy

@when('we visit google')
def step(context):
   context.browser.get('http://www.google.com')

@then('it should have a title "Google"')
def step(context):
   assert context.browser.title == "Google"

Example features environmentpy

from selenium import webdriver

def before_all(context):
    desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
    desired_capabilities['version'] = '12'
    desired_capabilities['platform'] = 'WINDOWS'
    desired_capabilities['name'] = 'Testing Selenium 2 with Behave'
    desired_capabilities['client_key'] = 'key'
    desired_capabilities['client_secret'] = 'secret'

    context.browser = webdriver.Remote(
        desired_capabilities=desired_capabilities,
        command_executor="http://hub.testingbot.com:4444/wd/hub"
    )

def after_all(context):
    context.browser.quit()

Besides behave support we have documentation for lettuce and pyunit

When writing tests with Python, it might be convenient to consult the Python Selenium docs.