Не удалось найти версию, которая удовлетворяет требованию geckodriver == 0.24.0 (из -r /app/requirements.txt (строка 4)) с Selenium Geckodriver - PullRequest
1 голос
/ 12 июня 2019

Нет проблем на моей локальной машине.Но когда я развернул его на облачном сервере специально в Scrapinghub, мне нужно было добавить geckodriver

Как включить geckodriver в мой файл require.txt?

вот мой рабочий код

 from selenium import webdriver
 from selenium.webdriver.support.ui import WebDriverWait
 from selenium.webdriver.common.by import By
 from selenium.webdriver.support import expected_conditions as EC
 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
 from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

 def parse_subpage(self, response):

        profile = webdriver.FirefoxProfile()
        profile.set_preference("network.proxy.type", 1)
        profile.set_preference("network.proxy.http", 
                    "localhost")
        profile.set_preference("network.proxy.http_port", 
                    3128)
        profile.update_preferences()

        capabilities = webdriver.DesiredCapabilities().FIREFOX
        capabilities["marionette"] = True
        driver = webdriver.Firefox(capabilities=capabilities, 
                    firefox_profile=profile)

        driver.get('sample.com')
        driver.quit() 

my Requirement.txt

mysql-connector-python
pytz==2018.9
selenium==3.13.0
geckodriver==0.24.0 

Наблюдаемая ошибка:

ERROR: Could not find a version that satisfies the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) (from versions: none)

1 Ответ

1 голос
/ 12 июня 2019

Это сообщение об ошибке ...

Could not find a version that satisfies the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) (from versions: none)

... подразумевает, что произошла ошибка, в то время как GeckoDriver пытался инициировать сеанс просмотра через Firefox .

Кажется, что нет несовместимости между geckodriver == 0.24.0 и selenium == 3.13.0 в соответствии с документацией Поддерживаемые платформы .

Предположительно, это похоже на проблему с местом установки Mozilla Firefox . Либо Firefox не установлен в вашей системе, либо Firefox не установлен в стандартном (желаемом) месте.


Решение

Вам нужно установить Firefox в папку по умолчанию. Incase Firefox устанавливается в настроенном месте, которое необходимо передать абсолютный путь двоичного файла firefox следующим образом:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

capabilities = webdriver.DesiredCapabilities().FIREFOX
capabilities["marionette"] = True
binary = FirefoxBinary('C:/Program Files/Mozilla Firefox/firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, capabilities=capabilities, executable_path="C:/Utility/BrowserDrivers/geckodriver.exe")
driver.get("http://www.google.com")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...