2015-07-05 3 views
5

Ho letto domande simili, una doveva essere la risposta, ma quando l'ho provata ha dato solo una soluzione parziale.Selenio: come disabilitare il caricamento delle immagini con firefox e python?

Mi riferisco alla domanda: Disable images in Selenium Python

mio problema è che ho provato questa soluzione e alcune delle immagini non appaiono, ma le immagini che arrivano da:

<img href="www.xxx.png"> 

vengono caricati. C'è un modo per dire a firefox/selenio di non averlo? In caso contrario, c'è un modo di disfarsene dall'elemento dom che torno, tramite

self._browser.get(url) 
content=self._browser.page_source 

per esempio facendo una sorta di trovare a sostituire l'albero dom?

La configurazione del browser è lo stesso browser dalla domanda precedente:

firefox_profile = webdriver.FirefoxProfile() 
    # Disable CSS 
    firefox_profile.set_preference('permissions.default.stylesheet', 2) 
    # Disable images 
    firefox_profile.set_preference('permissions.default.image', 2) 
    # Disable Flash 
    firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false') 
    # Set the modified profile while creating the browser object 
    self._browser = webdriver.Firefox(firefox_profile=firefox_profile) 

--------------------------- ---------- CORREZIONE -------------------------------------

Continuavo a scavare e quello che ho imparato è Quello,
Se ispeziono il documento di testo che la combo selenium/firefox l'ho visto, non ha portato le immagini e mantenuto come collegamenti.

Ma quando l'ho fatto:

self._browser.save_screenshot("info.png") 

ho ottenuto un mega di file 24 con tutti i link img caricati.
Qualcuno può spiegarmi questa faccenda?
Grazie

risposta

3

È possibile disattivare le immagini utilizzando il seguente codice:

firefox_profile = webdriver.FirefoxProfile() 
firefox_profile.set_preference('permissions.default.image', 2) 
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false') 

driver = webdriver.Firefox(firefox_profile=firefox_profile) 

se avete bisogno di bloccare alcuni URL specifico ... hm ... Penso che è necessario aggiungere stringa:

127.0.0.1 www.someSpecificUrl.com 

nel file hosts prima dell'avvio del test e cancellarlo dopo il test.

+0

Funziona? Penso che abbia bisogno di False invece che di stringa "false". Dovrebbe essere booleano. Consiglio di Pls. – mrtipale

+0

Dipende dalla tua lingua. Ma forse entrambi i metodi funzioneranno: quando lo invii come bool e quando lo mandi come stringa. Ma sì, questo deve funzionare. – Andrew

+0

Funziona per me. https://www.dropbox.com/s/o9wlmycti3yjg99/Screenshot%202018-01-26%2021.25.34.png?dl=0 –