Thursday, June 28, 2012

Testing with LiveServerTestCase and Selenium

Hello,
I'm using Django 1.4 and was really excited to learn about the new testing features. I am totally new to this.
I seem to have hit a bump in the road. If I overcome this I'm hopeful it will be smooth sailing and I will experience some great testing goodness.
I've been mucking around with this all morning and I can't seem to get the selenium Firefox webdriver to navigate to the given URL.

I have read the docs:
and read this tutorial
and tried to run the test code that they suggest.

When I run the very simple test:

from django.test import LiveServerTestCase
from selenium import webdriver

class MySeleniumTests(LiveServerTestCase):
    fixtures = ['lookups_security.json']

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

    def tearDown(self):
        self.browser.quit()

    def test_login(self):
        # Gertrude opens her web browser, and goes to the admin page
        self.browser.get(self.live_server_url + '/admin/login/')

        # She sees the familiar 'Django administration' heading
        body = self.browser.find_element_by_tag_name('body')
        self.assertIn('CISSIMP Admin', body.text)

A blank Firefox browser pops up, sits there and then closes.

The test output is:

(sitar_env2) C:\virtual_env\sitar_env2\cissimp>python manage.py test --liveserver=localhost:8082 sitar
Creating test database for alias 'default'...
E
======================================================================
ERROR: test_login (sitar.tests.MySeleniumTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\virtual_env\sitar_env2\cissimp\sitar\tests.py", line 54, in test_login
    self.assertIn('CISSIMP Admin', body.text)
AttributeError: 'NoneType' object has no attribute 'text'

----------------------------------------------------------------------
Ran 1 test in 22.546s

FAILED (errors=1)
Destroying test database for alias 'default'...

It seems obvious that the browser is not navigating to the URL I want so the code is trying to get a reference to an non-existent body tag.

Can anyone see what I am doing wrong?

Thanks
/Paul

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/jh47T9WA7QkJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment