To understand UnreachableBrowserException, we should first understand how Selenium works. To most people, Selenium is simply an API that you use to write code to drive a browser. Notice that I said code, not tests. The Selenium API is designed to be a browser automation tool, not just a test tool. It is commonly used for testing, but it can be used for any purpose that would require browser automation.
The current API that is in use is the WebDriver API; the old Selenium RC API has been deprecated since Selenium 2 came out and should not be actively used by anybody creating a new project.
Selenium is a bit more than just an API though. It is also a series of plugins, or binaries, or native implementations that enable you to talk to the browser. The Selenium API talks to all of these implementation methods using the common wire protocol. This wire protocol...