2012-07-28 36 views
4

我有這個文件,從Selenium IDE的單元測試與硒的作品flawlessy在python,但給進口錯誤Django的manage.py測試

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 
import unittest, time, re 

class Tcase(unittest.TestCase): 
    def setUp(self): 
     self.driver = webdriver.Firefox() 
     self.driver.implicitly_wait(30) 
     self.base_url = "http://localhost:9999/" 
     self.verificationErrors = [] 

    def test_tcase(self): 
     driver = self.driver 
     driver.get(self.base_url) 
     # other things... 

    def is_element_present(self, how, what): 
     try: self.driver.find_element(by=how, value=what) 
     except NoSuchElementException, e: return False 
     return True 

    def tearDown(self): 
     self.driver.quit() 
     self.assertEqual([], self.verificationErrors) 

if __name__ == "__main__": 
    unittest.main() 

我正在一個Django項目(1.4)和Python 2.6生成,我想用Selenium進行測試。

如果我直接從python運行這個文件,它的工作原理沒有問題。

如果我運行這個做

python manage.py test myapp 

我得到導入錯誤

C:\web\opineo> python .\manage.py test core 
Traceback (most recent call last): 
    File ".\manage.py", line 14, in <module> 
    execute_manager(settings) 
    File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 459, in execute_manager 
    utility.execute() 
    File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Python26\lib\site-packages\django\core\management\commands\test.py", line 49, in run_from_argv 
    super(Command, self).run_from_argv(argv) 
    File "C:\Python26\lib\site-packages\django\core\management\base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "C:\Python26\lib\site-packages\django\core\management\base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File "C:\Python26\lib\site-packages\south-0.7.3-py2.6.egg\south\management\commands\test.py", line 8, in handle 
    super(Command, self).handle(*args, **kwargs) 
    File "C:\Python26\lib\site-packages\django\core\management\commands\test.py", line 72, in handle 
    failures = test_runner.run_tests(test_labels) 
    File "C:\Python26\lib\site-packages\django\test\simple.py", line 380, in run_tests 
    suite = self.build_suite(test_labels, extra_tests) 
    File "C:\Python26\lib\site-packages\django\test\simple.py", line 264, in build_suite 
    suite.addTest(build_suite(app)) 
    File "C:\Python26\lib\site-packages\django\test\simple.py", line 79, in build_suite 
    test_module = get_tests(app_module) 
    File "C:\Python26\lib\site-packages\django\test\simple.py", line 36, in get_tests 
    test_module = import_module('.'.join(prefix + [TEST_MODULE])) 
    File "C:\Python26\lib\site-packages\django\utils\importlib.py", line 35, in import_module 
    __import__(name) 
    File "C:\web\opineo\core\tests\__init__.py", line 3, in <module> 
    from core.tests.func import * 
    File "C:\web\opineo\core\tests\func.py", line 1, in <module> 
    from selenium import webdriver 
    File "C:\web\opineo\core\tests\selenium.py", line 3, in <module> 
    from selenium import webdriver 
ImportError: cannot import name webdriver 

有什麼不對?硒文件在那裏!在Python 2.6的站點包

編輯:

這個工程,預期它會打開Firefox的

PS C:\web\opineo> python.exe .\manage.py shell 
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32 
>>> from selenium import webdriver 
>>> driver = webdriver.Firefox() 
+1

_manage.py shell_,_import selenium_。 ti是否工作?如果沒有,請檢查您的導入。 – 2012-07-28 14:15:36

+0

是的,它的工作原理..我會更新這個問題 – apelliciari 2012-07-28 14:23:29

回答

4

終於我找到了問題:從測試稱爲文件被命名爲selenium.py ,所以它壓倒了圖書館;一個非常新手的錯誤。

這就是爲什麼它找不到webdriverselenium

+0

哇,我有同樣的錯誤... – SaiyanGirl 2012-08-31 17:04:42