---
title: Automated testing of Firefox, Chrome and Safari browser extensions
description: |-
  With Selenium Webdriver, you can run tests on Firefox, Chrome and Safari, all of them equipped with your browser extension.


  At TestingBot, we've ...
source_url:
  html: https://testingbot.com/blog/2016/06/15/automated-testing-of-firefox-chrome-and-safari-browser-extensions
  md: https://testingbot.com/blog/2016/06/15/automated-testing-of-firefox-chrome-and-safari-browser-extensions.md
---

# Automated testing on multiple browsers

By [Jochen D.](https://testingbot.com/about/jochen-d)2016-06-15

 Share on Facebook 

 Share on Twitter 

 Post on Reddit 

 Share link 

With Selenium Webdriver, you can run tests on Firefox, Chrome and Safari, all of them equipped with your browser extension.

At TestingBot, we've made this very easy for you! All you need to do is supply a link to the extension in your desired\_capabilities options of your test. Specify either the `.xpi file` (for Firefox), `.crx file` (for Chrome) or `.safariextz file` (for Safari).

TestingBot will then download the extension and add it to the browser (Firefox, Chrome or Safari) before the start of the test.

During your test, you can then check if the extension is functioning correctly. For example: does it modify the page correctly, does it do what it's supposed to do, ...

This is a great way to test your extensions before publishing them to the public. With a massive range of [browser combinations](https://testingbot.com/support/web-automate/browsers), you can test your extensions on both old, new and even beta/dev versions of browsers.

## Browser Extension Test Example

Below is an example on how to do this with Firefox, Chrome and Safari

```ruby
#!/usr/bin/env ruby

require 'rubygems'
require 'selenium-webdriver'

caps = Selenium::WebDriver::Remote::Capabilities.firefox
caps.version = "latest"
caps.platform = :WINDOWS
caps.name = "My First Extension Test"
caps["load-extension"] = "https://staging/myextension[.xpi/.crx/.safariextz]"

client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120

driver = Selenium::WebDriver.for(
  :remote,
  :url => "http://API_KEY:API_SECRET@hub.testingbot.com/wd/hub",
  :desired_capabilities => caps,
  :http_client => client)
driver.navigate.to "http://www.google.com"
element = driver.find_element(:name, 'added-by-extension')
p element.inspect
driver.quit
```

This example will start the latest, stable Firefox browser on our cloud, with the extension you specified in `load-extension` already installed.

The extension can either be an extension that's already available to the general public, or it can be an extension you're still working on and want to test.

In this example, the test will then go to Google and see if your extension really did modify the page (added a 'added-by-extension' element to the DOM).

Combined with our [other extra's](https://testingbot.com/support/web-automate/selenium/test-options) like video recording, screen resolution specification and more, this type of testing can be very beneficial to make sure your extension works correctly across both older versions, stable versions and upcoming versions of the browser you're targeting.

[← Previous post Safari Technology Preview: Automated Testing with WebDriver](https://testingbot.com/blog/2016/06/14/safari-technology-preview-automated-testing-with-webdriver) [Next post → macOS Sierra Automated and Manual testing](https://testingbot.com/blog/2016/06/16/macos-sierra-automated-and-manual-testing)

## Sidebar

### TestingBot Cloud Testing

Run automated, manual and visual tests on remote browsers and devices. Sign up for a free trial.

[Free Trial](https://testingbot.com/users/sign_up)

### Latest articles

[![Announcing AI Test Insights](https://testingbot.com/assets/blog/2026/ai-insights.jpg)](https://testingbot.com/blog/ai-test-insights)

#### Announcing AI Test Insights

Use AI Insights to quickly discover why an automated test...

[Read: Announcing AI Test Insights](https://testingbot.com/blog/ai-test-insights)

[![Selenium vs Playwright 2026](https://testingbot.com/assets/blog/2026/selenium-vs-playwright-2026.jpg)](https://testingbot.com/blog/selenium-vs-playwright)

#### Selenium vs Playwright 2026

Comparing Selenium vs Playwright - which is the best test...

[Read: Selenium vs Playwright 2026](https://testingbot.com/blog/selenium-vs-playwright)

[![Maestro Physical Device Testing](https://testingbot.com/assets/blog/2026/maestro-physical.jpg)](https://testingbot.com/blog/maestro-physical-device-testing)

#### Maestro Physical Device Testing

Maestro testing in parallel on physical Android and iOS d...

[Read: Maestro Physical Device Testing](https://testingbot.com/blog/maestro-physical-device-testing)

## Related Articles

[![Selenium vs Playwright 2026](https://testingbot.com/assets/blog/2026/selenium-vs-playwright-2026.jpg)](https://testingbot.com/blog/selenium-vs-playwright "Selenium vs Playwright 2026")

### [Selenium vs Playwright 2026](https://testingbot.com/blog/selenium-vs-playwright)

Comparing Selenium vs Playwright - which is the best test framework for your usecase?

[Read article →](https://testingbot.com/blog/selenium-vs-playwright)

[![Selenium 20th birthday](https://testingbot.com/assets/blog/2024/selenium20.webp)](https://testingbot.com/blog/selenium-20-years "Selenium 20th birthday")

### [Selenium 20th birthday](https://testingbot.com/blog/selenium-20-years)

Celebrate Selenium's 20th birthday. An overview of the years.

[Read article →](https://testingbot.com/blog/selenium-20-years)

[![Playwright Testing on TestingBot](https://testingbot.com/assets/blog/2023/playwright-testing.jpg)](https://testingbot.com/blog/playwright-testing-introduction "Playwright Testing on TestingBot")

### [Playwright Testing on TestingBot](https://testingbot.com/blog/playwright-testing-introduction)

Learn how Playwright can run your automated tests on a variety of browsers, local or remote browsers on TestingBot.

[Read article →](https://testingbot.com/blog/playwright-testing-introduction)

[![Selenium WebDriver BiDi](https://testingbot.com/assets/blog/2024/bidi.webp)](https://testingbot.com/blog/webdriver-bidi "Selenium WebDriver BiDi")

### [Selenium WebDriver BiDi](https://testingbot.com/blog/webdriver-bidi)

WebDriver BiDi support is now available on TestingBot. Learn how to use this exciting new improvement with your Selenium tests.

[Read article →](https://testingbot.com/blog/webdriver-bidi)

## More by Jochen D.

[![Announcing AI Test Insights](https://testingbot.com/assets/blog/2026/ai-insights.jpg)](https://testingbot.com/blog/ai-test-insights "Announcing AI Test Insights")
### [Announcing AI Test Insights](https://testingbot.com/blog/ai-test-insights)

Use AI Insights to quickly discover why an automated test failed.

[![Maestro Physical Device Testing](https://testingbot.com/assets/blog/2026/maestro-physical.jpg)](https://testingbot.com/blog/maestro-physical-device-testing "Maestro Physical Device Testing")
### [Maestro Physical Device Testing](https://testingbot.com/blog/maestro-physical-device-testing)

Maestro testing in parallel on physical Android and iOS devices.

[![tvOS Physical Device Testing](https://testingbot.com/assets/blog/2025/appletv.jpg)](https://testingbot.com/blog/tvos-automated-testing "tvOS Physical Device Testing")
### [tvOS Physical Device Testing](https://testingbot.com/blog/tvos-automated-testing)

Run automated tvOS tests on physical AppleTV devices.

[See all posts by Jochen D. →](https://testingbot.com/about/jochen-d)

## Ready to start testing?
[Start a free trial](https://testingbot.com/users/sign_up)
