Запуск проекта Django-selenium на сервере

Я разработал проект django в виртуальной среде, в которой используется модуль selenium в одной из моих программ .py следующим образом:

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() 

Это было и работает нормально внутри моего виртуального env, но когда я пытаюсь использовать его после развертывания на сервере, я получаю следующую ошибку:

  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. 

Я узнал, что селен-webdriver работает только на клиенте, а не на сервере (исправьте меня, если я ошибаюсь), так можно ли каким-либо образом выполнить ту же команду на сервере? возможно, импортировать новые модули или вызвать api? Пожалуйста, если у кого-то есть понимание, посоветуйте мне .. Спасибо заранее.

Похоже, у вашего сервера нет дисплея. Попробуйте взглянуть на виртуальные дисплеи (xvnc / xvfb). Также вы можете попробовать использовать PyVirtualDisplay: https://pypi.python.org/pypi/PyVirtualDisplay. Это может выглядеть так:

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