Python Selenium Web Conductor Ejemplo de Django Docs Error: 'F.Queryinterface no es una función'
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?
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