2014-09-07 7 views
16

Ich versuche, eine Hilfsfunktion zur Ausgabe schöne Suppe Code zu bauen, um einen Browser ich den folgenden Code haben Stellweg:zu firefox binär auf Fenster mit Selen 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 

, wenn ich das laufen erhalte ich:

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

Ich benutze win7. Wie lege ich den Pfad zur tragbaren Firefox-Programmdatei fest?

Antwort

15

Um den benutzerdefinierten Pfad zu Firefox setzen Sie FirefoxBinary verwenden müssen:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

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

Oder alternativ hinzufügen F:\FirefoxPortable zum PATH Umgebungsvariable und feuern Firefox in üblicher Weise:

driver = webdriver.Firefox() 
+0

Danke erwähnen, das ist immer es viel näher, aber ich bin ein Pop-up immer besagt: „Ihr Firefox-Profil kann nicht geladen werden Es kann fehlen oder nicht zugänglich sein. " Auch in Python bekomme ich einen Webdriver-Fehler: "Nachricht: 'Der Browser scheint beendet zu sein, bevor wir eine Verbindung herstellen konnten. Die Ausgabe war:'" – user61629

+0

@ user61629 gut, welche Firefox-Version startest du? Wenn es brandneu ist (32nd) - downgrade es auf mindestens 31 (um sicher zu sein besser 28). Stellen Sie außerdem sicher, dass Sie das neueste Selen-Paket installiert haben. – alecxe

+0

@ user61629 Firefox 32. ist zu neu für das neueste Selen. Versuche den 31. oder 28.. Lass es mich wissen, ob es geholfen hat oder nicht. – alecxe

1

Standardmäßig sucht Selen in den Pfad - C: \ Programme (x86) \ Mozilla Firefox \

Bitte installieren Sie Firefox mit dem Link - http://filehippo.com/download_firefox/67599/ und versuchen Sie

Dafür müssen Sie nicht die binäre geben.

Wenn Sie Firefox an einem benutzerdefinierten Speicherort installieren möchten, geben Sie das Verzeichnis nach Ihrem Wunsch an, wenn es für den Standort angezeigt wird. Wenn Sie in benutzerdefinierten Ort installiert, dann müssen wir Firefox Binärspeicherort im Code wie unten

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) 
Verwandte Themen