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