Selenium Client Driver

Introduction

Python language bindings for Selenium WebDriver.

The selenium package is used automate web browser interaction from Python.

Home: http://www.seleniumhq.org
Docs: selenium package API
Dev: https://code.google.com/p/selenium/
PyPI: https://pypi.python.org/pypi/selenium
IRC: #selenium channel on freenode

Several browsers/drivers are supported (Firefox, Chrome, Internet Explorer, PhantomJS), as well as the Remote protocol.

Supported Python Versions

  • Python 2.6, 2.7
  • Python 3.2, 3.3

Installing

If you have pip on your system, you can simply install or upgrade the Python bindings:

pip install -U selenium

Alternately, you can download the source distribution from PyPI (e.g. selenium-2.40.tar.gz), unarchive it, and run:

python setup.py install

Note: both of the methods described above install selenium as a system-wide package That will require administrative/root access to ther machine. You may consider using a virtualenv to create isolated Python environments instead.

Example 0:

  • open a new Firefox browser
  • load the page at the given URL
from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

Example 1:

  • open a new Firefox browser
  • load the Yahoo homepage
  • search for “seleniumhq”
  • close the browser
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()

browser.get('http://www.yahoo.com')
assert 'Yahoo!' in browser.title

elem = browser.find_element_by_name('p')  # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN)

browser.quit()

Example 2:

Selenium WebDriver is often used as a basis for testing web applications. Here is a simple example uisng Python’s standard unittest library:

import unittest

class GoogleTestCase(unittest.TestCase):

    def setUp(self):
        self.browser = webdriver.Firefox()
        self.addCleanup(self.browser.quit)

    def testPageTitle(self):
        self.browser.get('http://www.google.com')
        self.assertIn('Google', self.browser.title)

if __name__ == '__main__':
    unittest.main(verbosity=2)

Selenium Server (optional)

For normal WebDriver scripts (non-Remote), the Java server is not needed.

However, to use Selenium Webdriver Remote or the legacy Selenium API (Selenium-RC), you need to also run the Selenium server. The server requires a Java Runtime Environment (JRE).

Download the server separately, from: http://selenium-release.storage.googleapis.com/2.40/selenium-server-standalone-2.40.0.jar

Run the server from the command line:

java -jar selenium-server-standalone-2.40.0.jar

Then run your Python client scripts.

Table Of Contents

This Page