Let's have a look at some examples of the things that we can do with the JavaScript executor that aren't really possible using the base Selenium API.
First of all, we will start off by getting the element text.
Wait a minute, element text? That's easy. You can use the existing Selenium API with the following code:
WebElement myElement = driver.findElement(By.id("foo")); String elementText = myElement.getText();
So, why would we want to use a JavaScript executor to find the text of an element?
Getting text is easy using the Selenium API, but only under certain conditions. The element that you are collecting the text from needs to be displayed. If Selenium thinks that the element from which you are collecting the text is not displayed, it will return an empty string. If you want to collect some text from a hidden element...