2014-09-07 9 views
16

Próbuję zbudować funkcję użytkową do wyjściowego pięknej kodu zupy do przeglądarki Mam następujący kod:Ustawianie ścieżki do firefox binarnego na oknach z selenem 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 

gdy uruchamiam to uzyskać:

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

Używam Win7. Jak ustawić ścieżkę do pliku wykonywalnego przenośnego firefox?

Odpowiedz

15

Aby ustawić ścieżkę niestandardową do Firefox trzeba użyć FirefoxBinary:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

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

Lub alternatywnie dodać F:\FirefoxPortable do zmiennej środowiskowej w PATH i odpalić Firefox w zwykły sposób:

driver = webdriver.Firefox() 
+0

Dziękuję, to jest coraz to dużo bliżej, ale ja dostaję okienko stwierdzający: „Twój profil Firefox nie może być załadowany Może być zaginiony lub niedostępny. " również w python dostaję błąd webdriver: "Message:" Wygląda na to, że przeglądarka zakończyła, zanim mogliśmy się połączyć.Odbiór był: "" – user61629

+0

@ user61629 dobre, jakie wersja firefox uruchamiasz? Jeśli jest nowiutki (32.) - obniżyć go do co najmniej 31 (być bezpieczniejszym 28). Upewnij się również, że masz zainstalowany najnowszy pakiet 'selenium'. – alecxe

+0

@ user61629 Firefox 32nd jest zbyt nowy dla najnowszego selenu. Spróbuj 31 lub 28. Daj mi znać, czy to pomogło, czy nie. – alecxe

1

Domyślnie selen zajmie ścieżkę - C: \ Program Files (x86) \ Mozilla Firefox \

Zainstaluj Firefoksa za pomocą linku - http://filehippo.com/download_firefox/67599/ i wypróbuj

W tym celu nie musisz podawać kodu binarnego.

Jeśli chcesz zainstalować przeglądarkę Firefox w niestandardowej lokalizacji, podaj katalog, który chcesz, kiedy pojawi się w miejscu. Jeśli zainstalowany w niestandardowej lokalizacji, to musimy wspomnieć Firefox binarny lokalizację w kodzie jak poniżej

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) 
Powiązane problemy