In this chapter, we explored some of the many possibilities that are opened up to you when using JavascriptExecutor. We have really just scratched the surface of what is possible, but this chapter should have given you a good solid platform to expand upon.
After reading through this chapter you should be confident in executing JavaScript snippets through the browser and know how to pass in arguments. As well as using synchronous pieces of JavaScript, you will also be able to enhance your tests with asynchronous pieces of JavaScript that will allow you to build user interaction into your automated scripts. Finally you should be aware of when we should and when we shouldn't use a JavaScript executor.
In the next chapter, we are going to have a look at some of the limitations of Selenium. We will also have a look at the ways in which we can work around these limitations...