This chapter started off with the builder pattern, and we went over the actions class in detail. We created some generic methods that were put into TestBase at the end of this chapter. TestBase serves as a parent for all classes in our framework. This is where inheritance comes into the picture. We saw what JavascriptExecutor is and also created a few generic methods using this API. We went over a few scenarios of the actions class and JavaScriptExecutor. We saw the very important concept of listeners in Selenium and went over EventFiringWebDriver to listen to the executing code and log it to the console. We also downloaded the Selenium Server standalone for the setup of Selenium Grid and went over its architecture.
In the next chapter, we will look at the command pattern and the various pieces of the framework.