Disable images in Selenium Python Disable images in Selenium Python selenium selenium

Disable images in Selenium Python


Unfortunately the option firefox_profile.set_preference('permissions.default.image', 2) will no longer work to disable images with the latest version of Firefox - [for reason see Alecxe's answer to my question Can't turn off images in Selenium / Firefox ]

The best solution i had was to use the firefox extension quickjava , which amongst other things can disable images- https://addons.mozilla.org/en-us/firefox/addon/quickjava/

My Python code:

 from selenium import webdriver firefox_profile = webdriver.FirefoxProfile() firefox_profile.add_extension(folder_xpi_file_saved_in + "\\quickjava-2.0.6-fx.xpi") firefox_profile.set_preference("thatoneguydotnet.QuickJava.curVersion", "2.0.6.1") ## 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)

Other things can also be switched off by adding the lines:

  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.CSS", 2)  ## CSS  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Cookies", 2)  ## Cookies  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Flash", 2)  ## Flash  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Java", 2)  ## Java  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.JavaScript", 2)  ## JavaScript  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Silverlight", 2)  ## Silverlight


UPDATE: The answer might not work any longer since permissions.default.image became a frozen setting and cannot be changed. Please try with quickjava extension (link to the answer).


You need to pass firefox_profile instance to the webdriver constructor:

from selenium import webdriverfirefox_profile = webdriver.FirefoxProfile()firefox_profile.set_preference('permissions.default.stylesheet', 2)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)driver.get('http://www.stackoverflow.com/')driver.close()

And this is how it would be displayed:

enter image description here


The accepted answer doesn't work for me either. From the "reason" links referred by kyrenia I gathered that Firefox overrides the "permissions.default.image" preference on the first startup and I was able to prevent that by doing:

# Arbitrarily high numberprofile.set_preference('browser.migration.version', 9001)

Which seems to be ok since I create the profile on each driver startup so there is nothing to actually be migrated.