Настройка пути к бинарнику firefox на окнах с помощью selenium webdriver

Я пытаюсь создать функцию утилиты для вывода красивого супового кода в браузер. У меня есть следующий код:

def bs4_to_browser(data):

    from selenium import webdriver

    driver = webdriver.Firefox(path="F:\FirefoxPortable\Firefox.exe")
    driver.get("about:blank")

    data = '<h1>test</h1>'  # supposed to come from BeautifulSoup
    driver.execute_script('document.body.innerHTML = "{html}";'.format(html=data))

    return

когда я запускаю это, я получаю:

TypeError at /providers/
__init__() got an unexpected keyword argument 'path'

Я использую win7. Как установить путь к портативному исполняемому файлу firefox?

Ответы

Ответ 1

Чтобы установить настраиваемый путь к Firefox, вам нужно использовать FirefoxBinary:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('F:\FirefoxPortable\Firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)

Или, альтернативно, добавьте F:\FirefoxPortable в переменную среды PATH и запустите Firefox обычным способом:

driver = webdriver.Firefox()

Ответ 2

По умолчанию selenium будет искать путь - C:\Program Files (x86)\Mozilla Firefox\

Пожалуйста, установите Firefox, используя ссылку - http://filehippo.com/download_firefox/67599/ и попробуйте

Для этого вам не нужно указывать двоичный файл.

Если вы хотите установить Firefox в настраиваемом местоположении, тогда укажите каталог по вашему желанию, когда он появится для местоположения. Если вы установили в пользовательском расположении, нам нужно указать двоичное расположение Firefox в коде ниже:

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

binary = FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
fp = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp)

Ответ 3

Если вы, например, уже скачали драйвер chrome отсюда, вы можете просто указать путь к нему:

from selenium import webdriver
driver = webdriver.Chrome(r'D:\\chromedriver.exe')