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:
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.