2014-09-07 17 views
16

Sto cercando di costruire una funzione di utilità per l'output codice bello zuppa a un browser che ho il seguente codice:Impostazione percorso per firefox binario su finestre con selenio 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 

quando corro questo ottengo:

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

Sto usando win7. Come impostare il percorso dell'eseguibile di firefox portatile?

risposta

15

Per impostare il percorso personalizzato per Firefox è necessario utilizzare FirefoxBinary:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

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

O, in alternativa, aggiungere F:\FirefoxPortable alla variabile d'ambiente PATH e al fuoco fino Firefox in un modo usuale:

driver = webdriver.Firefox() 
+0

Grazie, thats ottenerlo molto più vicino, ma io sono sempre un popup affermando: "Il tuo profilo di Firefox non può essere caricato Potrebbe mancare o inaccessibile. " anche in python sto ricevendo un errore di webdriver: "Messaggio: 'Sembra che il browser sia uscito prima che potessimo connetterci. L'output era:'" – user61629

+0

@ user61629 buono, quale versione di firefox stai lanciando? Se è nuovo di zecca (32 °), esegui il downgrade su almeno 31 (per sicurezza 28 meglio). Inoltre, assicurati di aver installato l'ultimo pacchetto 'selenium'. – alecxe

+0

@ user61629 Firefox 32nd è troppo nuovo per l'ultimo selenio. Prova il 31 o il 28. Fammi sapere se ha aiutato o no. – alecxe

1

Per impostazione predefinita il selenio cercherà nel percorso - C: \ Programmi (x86) \ Mozilla Firefox \

Installa Firefox utilizzando il collegamento - http://filehippo.com/download_firefox/67599/ e prova

Per questo, non è necessario fornire il binario.

Se si desidera installare Firefox in posizione personalizzata, fornire la directory come si desidera quando viene visualizzata per la posizione. Se si è installato in posizione personalizzata allora abbiamo bisogno di parlare di Firefox posizione binario nel codice come di seguito

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) 
Problemi correlati