2015-07-22 6 views
5

Sto cercando di disabilitare le immagini in Firefox quando si utilizza Selenium. Dovrebbe essere un semplice aggiornamento delle preferenze di Firefox, che è documentato sulle istruzioni su Disable images in Selenium PythonImpossibile disattivare le immagini in Selenium/Firefox

Tuttavia quando ho eseguito, visualizzare immagini, e quando entro about: config, il valore per permissions.default.image è ancora 1, piuttosto che 2 che ho provato a impostarlo.

Il mio codice (scritto in Python) è:

from selenium import webdriver 
firefox_profile = webdriver.FirefoxProfile() 
firefox_profile.set_preference("permissions.default.image", 2) 
driver = webdriver.Firefox(firefox_profile) 
driver.get(web_address) 

Per avere un riferimento, questo codice funziona perfettamente con un altro cambiamento di preferenza per esempio disattivando i file CSV con la linea firefox_profile.set_preference("permissions.default.stylesheet",2). L'unica differenza che posso distinguere tra l'impostazione csv e quella dell'immagine, è che la riga permissions.default.image esiste già in about: config (cioè senza che me lo imposti), tuttavia la riga permissions.default.stylesheet non lo fa. ... sembra che io possa aggiungere nuove linee con il valore che voglio, ma non cambiare quello esistente (o è un beein scavalcato dal selenio dopo che ho inserito il mio valore).

+0

avete fatto anche d flash isable? firefox_profile.set_preference ('dom.ipc.plugins.enabled.libflashplayer.so', 'false') –

+0

Quale selenio e quali versioni di Firefox stai usando? Grazie. – alecxe

+0

@alecxe Firefox 39 e Salenium 2.46.0. Inoltre, sembra che non possa cambiare i valori di default - posso creare il valore "permissions.default.image_new" con il valore 2, ma non cambiare "permissions.default.image" da 1 a 2 – kyrenia

risposta

4

Da quello che ho capito, il problema è legato alle seguenti questioni di Firefox:

Ciò significa che permissions.default.image è congelato, non può essere modificato e non fa nulla.


Alternative:

+0

Grazie Alecxe!Seguito il tuo consiglio sull'uso delle estensioni anche se QuickJava ha funzionato meglio, poiché Image Block non supportava l'ultima versione di firefox. Ho condiviso il mio codice che risolve il problema in http://stackoverflow.com/questions/25214473/disable-images-in-selenium-python – kyrenia

0

ho avuto questo problema. la soluzione è sotto 3 passi. 1- creazione di un nuovo profilo per Firefox. in Windows chiude completamente Firefox. premere (Finestra + R), scrivere firefox.exe -p quindi premere Invio e creare un nuovo profilo. 2-open Firefox con il profilo creato quindi aprire about: config nella barra di navigazione e trovare permissions.default.image e rendere il suo numero 2. 3-modificare il codice come muggito

ProfilesIni profile = new ProfilesIni(); 
FirefoxProfile myprofile = profile.getProfile("your_profile_name"); 
WebDriver driver = new FirefoxDriver(myprofile); 
0

L'unica soluzione che ho trovato è quello descritto qui :

http://seleniumwebdrivertrainings.com/on-firefox-in-selenium-webdriver-tests-with-python-do-not-want-images-to-load-and-css-to-render/

Ad esempio:

from selenium import webdriver 
firefox_profile = webdriver.FirefoxProfile() 

firefox_profile.add_extension(folder_xpi_file_saved_in + 'quickjava-2.1.0-fx.xpi') 
firefox_profile.set_preference('thatoneguydotnet.QuickJava.curVersion', '2.1.0') ## Prevents loading the 'thank you for installing screen' 
firefox_profile.set_preference('thatoneguydotnet.QuickJava.startupStatus.Images', 2) ## Turns images off 
    firefox_profile.set_preference('thatoneguydotnet.QuickJava.startupStatus.AnimatedImage', 2) ## Turns animated images off 
driver = webdriver.Firefox(firefox_profile) 
driver.get(web_address_desired) 
+1

Nota - Quel link/risposta sembra copiare solo la mia risposta originale qui da http: // stackoverflow.com/a/31576684/2801069 – kyrenia