我已经在Django项目工作了一段时间,并开始使用新应用程序,尝试同时使用Selenium进行更多自动化测试。我正在使用http://www.tdd-django-tutorial.com/作为指南。
我正在尝试测试登录我的应用程序的能力。我的测试可以提取页面并填写文本字段,但是当它点击提交按钮时,它会挂起 - Firefox一直试图加载新页面,但它永远不会发生。对我来说这看起来像僵局,但我不太清楚它知道发生了什么。
其他细节:我正在使用Django的内置登录视图。我有另一个成功登录管理站点的测试。我手动测试时可以很好地登录我的应用程序。应用程序访问远程MySQL数据库。
这是我的测试:
from django.test import TestCase, LiveServerTestCase
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
class BucloudTest(LiveServerTestCase):
"""Tests shared functionality (login, network and app selection)."""
fixtures = ['24aug2012_dev_auth.json']
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(5)
def tearDown(self):
self.browser.quit()
def test_good_login(self):
"""Tests that a user can log in using valid credentials."""
self.browser.get(self.live_server_url + "/login/")
user_css = "[placeholder=Username]"
user_field = self.browser.find_element_by_css_selector(user_css)
user_field.send_keys("test_user1")
pw_css = "[placeholder=Password]"
pw_field = self.browser.find_element_by_css_selector(pw_css)
pw_field.send_keys("test")
button = self.browser.find_element_by_css_selector("[value='Sign in']")
button.click()
WebDriverWait(self.browser, 30).until(
lambda driver: driver.find_element_by_tag_name('body'))
body = self.browser.find_element_by_tag_name("body")
self.assertIn("Properties", body.text)
print "ran tests YAY!!"
我使用manage.py test functests --liveserver=localhost:8080-8090
运行测试。
非常感谢任何建议!
答案 0 :(得分:-1)
可能是因为test_good_login()函数的内容没有缩进