Python Using Adblock with Selenium and Firefox Webdriver Python Using Adblock with Selenium and Firefox Webdriver selenium selenium

Python Using Adblock with Selenium and Firefox Webdriver


Actually, Adblock Plus will add EasyList by default - but not if you set extensions.adblockplus.currentVersion preference to disable update/first-run actions. I guess that your goal was preventing the first-run page from showing up but it also prevented data storage initialization. Note that you have more issues here: even if Adblock Plus adds EasyList, it will still take an unknown time to download.

The better course of action should be initializing your profile with an existing adblockplus/patterns.ini file. You can get this file from your regular Firefox profile, with EasyList and other filter settings, and copy it to /Users/username/Downloads/profilemodel/adblockplus/patterns.ini. Then the following should work:

ffprofile = webdriver.FirefoxProfile("/Users/username/Downloads/profilemodel");


There's a better way to do this:

1) extract adblock.xpi with 7-zip or equivalent

2) open /modules/AppIntegration.jsm with a regular text editor

3) find the function declaration for "notifyUser()", and replace this with a simple return. for example:

/*** function notifyUser()* {*   let wrapper = (wrappers.length ? wrappers[0] : null);*   if (wrapper && wrapper.addTab)*   {*       wrapper.addTab("chrome://adblockplus/content/ui/firstRun.xul");*   }*   else*   {*       Utils.windowWatcher.openWindow(wrapper ? wrapper.window : null,*                                                                    "chrome://adblockplus/content/ui/firstRun.xul",*                                                                    "_blank", "chrome,centerscreen,resizable,dialog=no", null);*   }* }*/function notifyUser(){    return;}

Now you just need to package the files back into a zip, and change the extension from .zip to .xpi -- Voila!

This will stop adblock from loading the welcome page, but it will still configure the necessary subscription settings. Make sure NOT to call

ffprofile.set_preference("extensions.adblockplus.currentVersion", "x.x.x")

Otherwise, it will not know to "boot itself"

Please note that this is for adblock_plus-2.0.3 since I'm using firefox-17. The code may be slightly different, and in a different location for newer versions. See: https://issues.adblockplus.org/ticket/206#comment:5


I just recently found out how to block the first-run page without any issues by trial and error:

  1. Go to the folder where your extension is located

  2. In lib/adblockplus.js, set defaults.suppress_first_run_page to true instead of false.