Introducing the JavaScript executor
Selenium has a mature API that handles the majority of automation tasks that you may want to throw at it. That being said, you will occasionally come across problems that the API doesn't really seem to support. This was very much on the development team's mind when Selenium was written. So, they provided a way for you to easily inject and execute arbitrary blocks of JavaScript. Let's have a look at a basic example of using a JavaScript executor in Selenium:
driver.executeScript("console.log('I logged something to the Javascript console');");
Now it's possible that this didn't work for you; it depends on what sort of object you are passing around. If you are passing around an instance of RemoteWebDriver
(that includes FirefoxDriver
and ChromeDriver
) it will have worked fine. However, if you are passing around a WebDriver
instance it will have failed to compile. If you are passing around a WebDriver
object, you will need to do the following:
JavascriptExecutor...