selenium.common.exceptions.WebDriverException: Сообщение: исполняемый файл 'firefox' должен быть в PATH с GeckoDriver Firefox Selenium и Python - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь открыть Firefox с селеном, я пытался

from selenium import webdriver
driver=webdriver.Firefox()

Но я получил следующую ошибку:

selenium.common.exceptions.WebDriverException: Message: 'firefox' executable needs to be in PATH.

Селен с использованием Python - исполняемый файл Geckodriver долженбыть в PATH

Я пытался

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('/usr/bin/firefox')
browser = webdriver.Firefox(firefox_binary=binary)

Также пытался

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.FIREFOX
caps['marionette'] = True
caps['binary'] = '/usr/bin/firefox'
d = webdriver.Firefox(capabilities=caps)

`, но все еще не работал.

Однако, когда я попытался использовать приведенный выше код, заменив последнюю строку на

d=webdriver.Firefox(capabilities=caps,executable_path='/usr/bin/firefox') и закрыв мой Firefox из фона, он открыл бы Firefox, но я просто не могу d.get("https://www.google.com") он застревает на домашней странице Linux и ничего не открывается.

После ввода whereis firefox в терминале я получил /usr/bin/firefox, также, если это имеет значение, я использую python 2.7

Примечание : Я надеюсь, что это не дубликат вышеуказанной ссылки, потому что я попробовал ответы, но это не помогло.

Я установил geckodriver из github , и попытался browser=webdriver.Firefox(executable_path="geckodriver"), я поместил драйвер в тот же каталог.

1 Ответ

0 голосов
/ 19 января 2019

До сих пор не ясно, почему вы видите ошибку как:

selenium.common.exceptions.WebDriverException: Message: 'firefox' executable needs to be in PATH.

В большинстве случаев общая ошибка, связанная с PATH, связана с geckodriver .

Однако при работе с Selenium 3.x вам необходимо загрузить последнюю версию GeckoDriver с mozilla / geckodriver и сохранить ее в любом месте вашей системы и указать абсолютный путь к GeckoDriver через аргумент executable_path.

Следующий блок кода отлично работает для открытия Firefox Nightly Browser (установлен в заданном месте):

  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    options = Options()
    options.binary_location = '/path/to/firefox'
    driver = webdriver.Firefox(firefox_options=options, executable_path='/path/to/geckodriver')
    driver.get('http://google.com/')
    print("Page title is: %s" %(driver.title))
    driver.quit()
    
  • Консольный вывод:

    Page title is: Google
    
...