examples example español code python django selenium web-applications server

python - example - Ejecución del proyecto Django-selenium en el servidor



selenium python install (1)

Desarrollé un proyecto django en un entorno virtual que utiliza el módulo de selenio en uno de mis programas .py de la siguiente manera:

from selenium import webdriver self.driver = webdriver.Firefox() self.driver.implicitly_wait(10) self.base_url = "%s"%(website) self.verificationErrors = [] self.accept_next_alert = True driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_link_text("Sign In").click() driver.implicitly_wait(15) driver.switch_to_window(driver.window_handles[-1]) driver.find_element_by_id("authentication_email").clear() driver.find_element_by_id("authentication_email").send_keys("%s"%(username)) driver.find_element_by_css_selector("button.isReturning.isTransitionToSecondary").click() driver.find_element_by_id("authentication_password").clear()

Estaba funcionando bien en mi entorno virtual, pero cuando trato de usarlo después de implementarlo recibo el siguiente error:

WebDriverException Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details.

Llegué a saber que selenium webdriver solo se ejecuta en el cliente y no en el servidor (corríjame si estoy equivocado), así que ¿hay alguna forma de que pueda ejecutar el mismo comando en el servidor? tal vez importar nuevos módulos o llamar a una API? Por favor, si alguien tiene una idea, guíame ... Gracias de antemano.


Parece que tu servidor no tiene pantalla. Intente echar un vistazo a las pantallas virtuales (xvnc / xvfb). También puedes intentar usar PyVirtualDisplay: https://pypi.python.org/pypi/PyVirtualDisplay Puede verse así:

from pyvirtualdisplay import Display from selenium import webdriver self.display = Display(visible=0, size=(1024, 768)) self.display.start() self.driver = webdriver.Firefox()