If a web page is highly dynamic in nature it have complex Javascript functions or Ajax function then sometimes simple click using selenium like
driver.findElement(By.xpath("")).click(); do not work OR many functions like getText(), sendKeys() etc do not work
So here we can use JavascriptExecutorInterface and its various mathods to perform such operations.
How to perform Scroll by using java script executor
jse.executeScript("window.scrollBy(X,Y)", "");
//here X & Y are value in pixal
Example :- JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)", "");
How to perform Scroll upto a webElement by using java script executor
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].scrollIntoView();", "");
How to perform Scroll upto upto bottom of WebPage by using java script executor
jse.executeScript("window.scrollTo(0, document.body.scrollHeight)");
How to perform Action click by using java script executor
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click();", we);
How to perform Action SendKeys/SendText by using java script executor
{
String inputtext = "arguments[0].value='"+text+"';";
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript(inputtext, we);
}
How to perform Action getText by using java script executor
{
JavascriptExecutor jse = (JavascriptExecutor)driver;
String text = (String) jse.executeScript("return arguments[0].value", we);
return text;
}
How to Highlight a webElement by using java script executor
{
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].setAttribute('style', 'background:yellow; border : 2px solid red;');", element);
Thread.sleep(100);
jse.executeScript("argument[0].setAtrribute('style', '');", element);
Thread.sleep(100);
jse.executeScript("arguments[0].setAttribute('style', 'background:yellow; border : 2px solid red;');", element);
}