Or more specifically: Selenium IDE (Firefox plugin) vs Selenium Webdriver (Python and other languages) vs CasperJS (and PhantomJS or SlimerJS)
Selenium allows you, a programmer or non-programmer, to control a web browser and make it do things that you would otherwise do manually. With that ability, you can test your website over and over (and automatically from cron), similate users, or visit any number of web pages and read data (web scraping) on them and save to a file for processing.
If you go to the Selenium website you will actually see a number of Selenium projects. The two main ways you'll want to use Selenium is via Selenium IDE or Selenium Webdriver.
1. Selenium IDE
"Selenium IDE is a Firefox plugin which records and plays back user interactions with the browser. Use this to either create simple scripts or assist in exploratory testing. It can also export Remote Control or WebDriver scripts, though they tend to be somewhat brittle and should be overhauled into some sort of Page Object-y structure for any kind of resiliency."
Selenium IDE has the advantage of being usable without programming knowledge, although it is still rather technical. You can simply press the record button and take some actions in the browser and then replay those actions later. Selenium doesn't always record what you expect, but you can view and edit the steps in the saved script. This will require some knowledge of the structure of HTML and of CSS selectors. The use case for IDE is to record and replay single macros. Creating and managing and running collections of many such macros or using macros to crawl and export and data (including verifying externally if seen test data is correct) is outside the scope of Selenium IDE and so for all but the simplest users and use cases you should start with Selenium Webdriver instead of Selenium IDE.
2. Selenium WebDriver
Selenium 2.0 is Selenium Webdriver. Selenium 1.0 and Selenium-RC are outdated so just use Webdriver.
"WebDriver is a tool for automating web application testing, and in particular to verify that they work as expected."
You can run WebDriver on your personal laptop or on a headless remote Linux server. In the latter case, you don't actually need to have X11 running but you do need Xvfb, a virtual frame buffer which is where Firefox will think it's running.
One huge advantage of Selenium is that it can drive just about any browser, as most of them now have support, from IE to Chrome, as well as Safari on iOS and Chrome on Android. So while PhantomJS/CasperJS can pretend to be a WebKit browser (meaning Safari), it's not actually truly one of those browsers plus it can't pretend to be Internet Explorer or Firefox or Chrome or all those other browsers.
SlimerJS: Now Casper supports the Gecko rendering engine which Firefox uses, so you get both a Safari-like browser and a Firefox-like one. The support is new as of SlimerJS 0.8 and CasperJS 1.1beta1 and you switch to Slimer by running Casper with
--engine=slimerjs. It might not be as good as a real instance of Firefox. And I've had to switch out different versions of Firefox with Selenium (on Linux) before which would be more of a chore to do with Slimer.