> For the complete documentation index, see [llms.txt](https://daijro.gitbook.io/hrequests/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://daijro.gitbook.io/hrequests/browser-automation/firefox-addons.md).

# Firefox addons

Import Firefox extensions into a Browser instance

Firefox extensions can be easily imported into a browser session. Some potentially useful extensions include:

* **uBlock Origin - Ad & popup blocker (Automatically installed)**
* **hektCaptcha** - Hcaptcha solver ([Download](https://github.com/Wikidepia/hektCaptcha-extension))
* **FastForward** - Bypass & skip link redirects ([Download](https://nightly.link/FastForwardTeam/FastForward/workflows/main/main/FastForward_firefox.zip))

{% hint style="info" %}
**Hrequests only supports Firefox extensions.**

Due to limitations in Playwright, Hrequests only supports adding addons to Firefox. Hrequests *will* throw an error if you attempt to pass the extensions parameter to a Chrome BrowserSession.
{% endhint %}

Extensions are added with the `extensions` parameter:

* This can be an list of absolute paths to unpacked extensions:

  ```py
  with resp.render(extensions=['C:\\extensions\\hektcaptcha', 'C:\\extensions\\fastforward']):
  ```

\
Note that these need to be *unpacked* extensions. You can unpack a `.xpi` file by changing the file extension to `.zip` and extracting the contents.

Usage example of using a captcha solver:

```py
>>> resp = hrequests.get('https://accounts.hcaptcha.com/demo', browser='firefox')
>>> with resp.render(extensions=['C:\\extensions\\hektcaptcha']) as page:
...     page.awaitSelector('.hcaptcha-success')  # wait for captcha to finish
...     page.click('input[type=submit]')
```
