2012-07-28 38 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