Selenium works by invoking a browser, pointing it to a web server running your application, and then remotely controlling the browser by integrating itself in the JavaScript and DOM layers.
When you develop the tests, you can use two basic methods:
- Record user interactions in the browser and later save the resulting test code for reuse
- Write the tests from scratch using Selenium's test API
Many developers prefer to write tests as code using the Selenium API at the outset, which can be combined with a test-driven development approach.
Regardless of how the tests are developed, they need to run in the integration build server.
This means that you need browsers installed somewhere in your test environment. This can be a bit problematic since build servers are usually headless; that is, they are servers that don't run user interfaces...