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.
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.38.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.
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
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()
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)
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.googlecode.com/files/selenium-server-standalone-2.38.0.jar
Run the server from the command line:
java -jar selenium-server-standalone-2.38.0.jar
Then run your Python client scripts.
View source code online:
official: | https://code.google.com/p/selenium/source/browse/py |
mirror: | https://github.com/SeleniumHQ/selenium/tree/master/py |