Pregunta

Quiero escribir algunos inconvenientes de selenio para la aplicación Django.Ya tenemos muchos inconvenientes regulares de Python.He copiado el Ejemplo de prueba de selenio de DJANGO DOCS (que es poco más que un 'mundo hola' para el selenio '):

from selenium.webdriver.firefox.webdriver import WebDriver
from django.test import LiveServerTestCase


class MySeleniumTestCase(LiveServerTestCase):
    @classmethod
    def setUpClass(cls):
        cls.selenium = WebDriver()
        super(MySeleniumTestCase, cls).setUpClass()

    @classmethod
    def tearDownClass(cls):
        cls.selenium.quit()
        super(MySeleniumTestCase, cls).tearDownClass()

    def test_simple(self):
        self.selenium.get("/")

Sin embargo, cuando ejecuto esto localmente, o use Circleci (Pruebas en la nube-AS-A- A-Servicio), obtengo este error:

======================================================================
ERROR: test_simple (proj.lib.tests.MySeleniumTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ubuntu//proj/proj/lib/tests.py", line 1347, in test_simple
    self.selenium.get("/")
  File "/home/ubuntu/proj/venv/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 185, in get
    self.execute(Command.GET, {'url': url})
  File "/home/ubuntu/proj/venv/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 173, in execute
    self.error_handler.check_response(response)
  File "/home/ubuntu/proj/venv/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: u'f.QueryInterface is not a function' ; Stacktrace: 
    at FirefoxDriver.prototype.get (file:///tmp/tmpXXrLF6/extensions/fxdriver@googlecode.com/components/driver_component.js:9333)
    at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmpXXrLF6/extensions/fxdriver@googlecode.com/components/command_processor.js:11455)
    at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmpXXrLF6/extensions/fxdriver@googlecode.com/components/command_processor.js:11460)
    at DelayedCommand.prototype.execute/< (file:///tmp/tmpXXrLF6/extensions/fxdriver@googlecode.com/components/command_processor.js:11402)

Este es Django 1.5.5, Python 2.7, Selenium Python Package 2.42.1

¿Cuál es el problema?¿Cómo consigo el selenio funcionando?

¿Fue útil?

Solución

El método get requiere una URL completa.Es decir, el URI, incluido el protocolo y el nombre de host / IP.

self.selenium.get("/")
# becomes
self.selenium.get("http://stackoverflow.com/questions/24011019/")

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top