Wednesday, 17 October 2018

Javascript Executor for Selenium - Examples to Practice

JavascriptExecutor:
===============

JavaScriptExecutor is an interface class, which is provided in
WebDriver library similar to Actions, Select...etc

Using this class we can click on a webelement, enter data,
highlight a specific webelement, scroll down page...etc

JavascriptExecutor is providing "executeScript" method to perform operations

Exp: Write script to open specified url using JavascriptExecutor

WebDriver driver= new FirefoxDriver();
//type casting
JavascriptExecutor js= ((JavascriptExecutor)driver);
//to open url
js.executeScript("window.location='http://login.salesforce.com'");


Exp: Write script to enter a value in Email edit box using javascriptExecutor

WebDriver driver= new FirefoxDriver();
driver.get("http://login.salesforce.com");
driver.manage().window().maximize();

JavascriptExecutor js= ((JavascriptExecutor)driver);

js.executeScript("window.document.getElementById('username').value='InsightQ'");


Exp: Write script to get popup window

WebDriver driver= new FirefoxDriver();

JavascriptExecutor js= ((JavascriptExecutor)driver);

//Create popup message using javaScript Executor
js.executeScript("window.alert('Hi, I am executing Webdriver')");
Thread.sleep(3000);
driver.switchTo().alert().accept();


Exp: Write script to highlight "username" edit box

WebDriver driver= new FirefoxDriver();
driver.get("https://login.salesforce.com");
driver.manage().window().maximize();

WebElement ele1= driver.findElement(By.id("username"));
JavascriptExecutor js= ((JavascriptExecutor)driver);
js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px dashed red;');", ele1);

NOTE:  Style of border eg; dahed, dotted, solid, doubles, groove...etc

Exp: Write script to find size of window

WebDriver driver= new FirefoxDriver();
driver.get("http://www.rediff.com/");
driver.manage().window().maximize();

JavascriptExecutor js= ((JavascriptExecutor)driver);

//to find size of window
long height= (long)js.executeScript("return window.innerHeight");
long width= (long)js.executeScript("return window.innerWidth");
System.out.println("Height is: "+height);
System.out.println("Width is: "+width);

Exp: Write script to scroll down the page
WebDriver driver= new FirefoxDriver();
driver.get("http://www.rediff.com/");
driver.manage().window().maximize();

JavascriptExecutor js= ((JavascriptExecutor)driver);

//to scroll down
js.executeScript("window.scrollBy(0, 1500)");
Thread.sleep(2000);
//to scroll up
js.executeScript("window.scrollBy(0, -1500)");
Thread.sleep(2000);


Exp:

public class JavaSCriptExecutor {

public WebDriver driver;

public void openURL() throws Exception{

driver = new FirefoxDriver();
        driver.get("https://www.youtube.com/watch?v=6SRQQ1jdBJw");
        driver.manage().window().maximize();
        Thread.sleep(10000);
     
}

public void executor() throws Exception{
JavascriptExecutor js = (JavascriptExecutor)driver;
Thread.sleep(10000);
js.executeScript("document.getElementById('movie_player').pauseVideo();");
Thread.sleep(5000);
js.executeScript("document.getElementById('movie_player').playVideo();");
Thread.sleep(5000);
js.executeScript("document.getElementById('movie_player').seekTo(50);");
Thread.sleep(5000);
js.executeScript("document.getElementById('movie_player').pauseVideo();");
Thread.sleep(5000);
js.executeScript("document.getElementById('movie_player').seekTo(10);");
Thread.sleep(5000);
js.executeScript("document.getElementById('movie_player').playVideo();");
Thread.sleep(10000);
driver.quit();
}

public static void main(String[] args) throws Exception {
JavaSCriptExecutor j = new JavaSCriptExecutor();
j.openURL();
j.executor();

}
}

No comments:

Post a Comment