web-dev-qa-db-fra.com

Définition du chemin d'accès au binaire Firefox sur Windows avec le WebDriver Selenium

J'essaie de créer une fonction utilitaire pour générer un code de soupe magnifique vers un navigateur. J'ai le code suivant:

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

quand je lance ceci je reçois:

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

J'utilise win7. Comment définir le chemin d'accès à l'exécutable portable firefox?

19
user61629

Pour définir le chemin personnalisé sur Firefox, vous devez utiliser FirefoxBinary:

from Selenium.webdriver.firefox.firefox_binary import FirefoxBinary

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

Ou, alternativement, ajoutez F:\FirefoxPortable à la variable d'environnement PATH et lancez Firefox de manière habituelle:

driver = webdriver.Firefox()
19
alecxe

Par défaut, Selenium examinera le chemin - C:\Program Files (x86)\Mozilla Firefox \

Veuillez installer Firefox en utilisant le lien - http://filehippo.com/download_firefox/67599/ et essayez

Pour cela, vous n'avez pas besoin de donner le binaire. 

Si vous souhaitez installer Firefox à un emplacement personnalisé, indiquez le répertoire souhaité lorsqu’il apparaît pour l’emplacement. Si vous avez installé dans un emplacement personnalisé, nous devons mentionner l'emplacement binaire de Firefox dans le code ci-dessous.

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
Karthikeya

Si, par exemple, vous avez déjà téléchargé le pilote chrome à partir de ici , vous pouvez simplement spécifier le chemin d'accès de cette manière:

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