1

私はしばらく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ます。

ご提案いただきありがとうございます。

4

1 に答える 1

-1

test_good_login() 関数の内容がインデントされていないことが原因である可能性があります

于 2012-09-11T15:42:06.007 に答える