Django 1.4でSeleniumを使ったwebページのテスト

Django1.4でLiveServerTestCaseが追加されました。
https://docs.djangoproject.com/en/dev/releases/1.4/#support-for-in-browser-testing-frameworks


Seleniumを使ったブラウザテストを可能にするものです。
どんな感じが掴んでみようと簡単なサンプルを動かしてみました。
ログイン前とログイン後でそれぞれページのtitleを検証するだけのテストです。

seleniumのインストールが必要です

pip install selenium


以下、動かすとfirefoxが起動して自動的にログインを行います。
いきなりfirefoxが起動するのが最初は面白かったです。

from django.test import LiveServerTestCase
from selenium.webdriver.firefox.webdriver import WebDriver

class BrowserTest(LiveServerTestCase):

    @classmethod
    def setUpClass(cls):
        cls.selenium = WebDriver()
        super(BrowserTest, cls).setUpClass()

    @classmethod
    def tearDownClass(cls):
        cls.selenium.quit()
        super(BrowserTest, cls).tearDownClass()


    def test_login(self):

        # ログインページ遷移
        self.selenium.get('%s%s' % (self.live_server_url, '/login/'))

	# title
        self.assertEquals(u'ログイン', self.selenium.title)

	# ログイン
        username_input = self.selenium.find_element_by_name("username")
        username_input.send_keys('yuhei')
        password_input = self.selenium.find_element_by_name("password")
        password_input.send_keys('password')
        self.selenium.find_element_by_xpath('//button[@value="login"]').click()

	# title
        self.assertEquals(u'トップページ', self.selenium.title)