Tuesday, January 31, 2012

Platforms Supported by Selenium

We take compatibility seriously - that's why Selenium works with many browsers, operating systems, programming languages, and testing frameworks. From Firefox to JUnit, we've got you covered.

Browsers Browser Selenium IDE Selenium Remote Control Selenium Core Firefox 6 Start browser, run tests Run tests Firefox 5 Record and playback tests Start browser, run tests Run tests Firefox 4 Record and playback tests Start browser, run tests Run tests Firefox 3 Record and playback tests Start browser, run tests Run tests IE 9 not supported Start browser, run tests Run tests IE 8 not supported Start browser, run tests Run tests IE 7 not supported Start browser, run tests Run tests Safari 3 not supported Start browser, run tests Run tests Safari 2 not supported Start browser, run tests Run tests Opera 9 not supported Start browser, run tests Run tests Opera 8 not supported Start browser, run tests Run tests Others not supported Partial support possible* Run tests**

* Selenium Remote Control server can start any executable, but depending on browser security settings, there may be technical limitations that would limit certain features.

** Selenium Core is written in Javascript so it should work (in theory) on most browsers with decent Javascript support. Some operations are only possible via Selenium Remote Control because of browser security settings.

* Selenium Remote Control server is written in Java, so it may run on other systems as well, as long as there's a supported web browser available.

** Selenium Core is written in Javascript so it should work (in theory) on most browsers with decent Javascript support. Some operations are only possible via Selenium Remote Control because of browser security settings.

Programming languages are supported through Selenium Remote Control "drivers." These are libraries made for each language that expose commands from the Selenium API natively in the form of methods/functions.

* You can actually set up a custom code generator to output to any language. The templates are written in Javascript, but they just output text.

** Any language that can make an HTTP call can pass commands to the Selenium Remote Control server. Languages listed here have a wrapper library made already.

Testing frameworks aren't required, but they can be helpful if you want to automate your tests.

Framework Selenium IDE Selenium Remote Control Selenium Core Bromine Comes with template to add to IDE Manipulate browser, check assertions via custom driver Special support** JUnit Out-of-the-box code generation Manipulate browser, check assertions via Java driver n/a NUnit Out-of-the-box code generation Manipulate browser, check assertions via .NET driver n/a RSpec (Ruby) Custom code generation template* Manipulate browser, check assertions via Ruby driver n/a Test::Unit (Ruby) Out-of-the-box code generation Manipulate browser, check assertions via Ruby driver n/a TestNG (Java) Custom code generation template* Manipulate browser, check assertions via Java driver n/a unittest (Python) Out-of-the-box code generation Manipulate browser, check assertions via Python driver n/a Others Custom code generation template* Manipulate browser, check assertions via HTTP requests*** n/a Robot Framework SeleniumLibrary n/a Utilizes the Python driver n/a ISFW Out-of-the-box code generation**** Manipulate browser, check assertions via Java driver, also works with webdriver/remote webdriver, Grid2, Sauce on demand n/a

* Built-in code generation creates code specifically for the "out-of-the-box" frameworks, but you can modify the Javascript-based templates to output any kind of code you want.

** Bromine is built specifically for Selenium and it directly supports both Selenium Core and Selenium Remote Control. The other testing frameworks use Selenium Remote Control drivers for testing.

*** Using the appropriate driver (or HTTP commands), you can manipulate and test the browser using any testing framework by calling commands like "click" or "isElementPresent." Selenium Remote Control just deals with the commands and doesn't care about what actually calls those commands.

**** Selenium IDE Plug-in for InfoStretch Framework includes a formatter for ISFW as well as a bunch of other extensions.

Source: http://seleniumhq.org