How to Process Java Script Executor in Selenium Test Automation | Devstringx Technologies
How to get started with Query Scripts?
With the help of JavaScript Executor Interface we can execute query scripts directly in selenium .It provides two methods such as “executeScript” & “executeAsyncScript” to run JavaScript code.To make the availability of these methods we need to downcast JavaScript Executor Interface with Web Driver reference.
Some of the query methods are mentioned below -
- querySelector() method in HTML DOM is used to find the first HTML Element.This method function is similar to findElement() in selenium.
Syntax: document.querySelector(selector)
- querySelectorAll() method in HTML DOM is used to return the list of HTML Elements.It can be accessed by indexing starts at 0.This method function is similar to findElements() in selenium
Syntax: document.querySelectorAll(selector)
‘document’ is an object of Javascript Document that provides access to all HTML elements of a document. ‘selector’ represents a string containing one or more css selectors.
Importing the package
import org.openqa.selenium.JavascriptExecutor;
Creating a reference
JavascriptExecutor js = (JavascriptExecutor) driver;
Creating query script
script =document.querySelector(selector)
Calling the method
js.executeScript(script);
QUERY SCRIPTS:
- click : script =document.querySelector(selector).click();
- send text :script =document.querySelector(selector).value=’data’;
- get text : script =document.querySelector(selector).textContent;
- get attribute : script =document.querySelector(selector).getAttribute(“class”);
- get height : script =document.querySelector(selector).offsetHeight;
- get width : script =document.querySelector(selector).offsetWidth;
- get style: script =document.querySelector(selector).style;
Let’s create one simple ’QueryScriptsTest‘ automation script using Selenium that searches Amazon from google by JavascriptExecutor method.
package tests;import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.remote.RemoteWebDriver;
public class QueryScriptsTest {public static void main(String[] args) {System.setProperty(“webdriver.chrome.driver”, “./drivers/chromedriver.exe”);WebDriver driver=new ChromeDriver();driver.manage().window().maximize();driver.get(“https://www.google.com");JavascriptExecutor js = (JavascriptExecutor)driver;//send textString sendAmazonText=”document.querySelector(\”input[title=’Search’]\”).value=\”Amazon\”;”;js.executeScript(sendAmazonText);String clickSearchBtn =”document.querySelectorAll(\”input[value=’Google Search’]\”)[1].click()”;//click buttonjs.executeScript(clickSearchBtn);}}
Output:
The above program opens the chrome browser and it navigates to google.com. It executes query scripts ‘sendAmazonText’ and ‘clickSearchBtn’ through JavaScript Executor.
Originally published at https://www.devstringx.com on Oct 22, 2021.