使用selenium的Unittest在python中工作得很完美,但使用django manage.py测试时出现导入错误

使用selenium的Unittest在python中工作得很完美,但使用django manage.py测试时出现导入错误,python,django,selenium,functional-testing,importerror,Python,Django,Selenium,Functional Testing,Importerror,我有一个从Selenium IDE生成的文件 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(un

我有一个从Selenium IDE生成的文件

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)和Python2.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

最后我发现了问题:从测试中调用的文件名为
selenium.py
,因此它覆盖了库;一个非常新的错误


这就是为什么它在
selenium
中找不到
webdriver

manage.py shell,导入selenium。ti有效吗?如果没有,请检查您的导入。是的,它有效。。我会用这个更新这个问题
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()