4

I have this file, generated from 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()

I'm working on a Django project (1.4) and python 2.6, which i want to test with Selenium.

if i run this file directly from python it works without problems.

if i run this doing

python manage.py test myapp

i get import error

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

what's wrong? the selenium files are there! in site-packages of Python 2.6

EDIT:

this works, as expected it opens 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()
2
  • 1
    manage.py shell , import selenium . Does ti work? If not, check your imports. Commented Jul 28, 2012 at 14:15
  • yes it works.. i'll update the question with that Commented Jul 28, 2012 at 14:23

1 Answer 1

4

finally i've found the problem: the file called from test was named selenium.py, so it was overriding the library; a very newbie error.

that's why it couldn't find webdriver in selenium!

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.