Movatterモバイル変換


[0]ホーム

URL:


Selenium Tutorial

Selenium with JavaScript Tutorial



Selenium Webdriver can be used to execute JavaScript commands to interact with the html of the elements appearing within a browser on a web page. This is archived using the JavaScriptExecutor interface. One of the most common examples where JavaScript commands are used along with Selenium Webdriver is while performing a scrolling operation on a web page..

Methods to Run JavaScript Commands

There are various methods in theSelenium JavaScriptExecutor interface which can be used to run the JavaScript Commands.

Syntax

import org.openqa.selenium.JavascriptExecutor;JavascriptExecutor js = (JavascriptExecutor) driver;js.executeScript(script, args);

Example to Execute JavaScript Commands in Selenium

Let us take an example of the below page, where we would launch an application with a URL:Selenium Automation Practice Form. Then we would obtain the text: Student Registration Form, and domain aswww.tutorialspoint.com. Next we would enter the textJavaScript in the input box beside theName: label.

Selenium Javascript Tutorial 1

Then, we would click on theLogin button, after which we would be navigated to another page having a text asWelcome, Login In. Finally, we would refresh the browser and again obtain the text, URL and domain asWelcome, Login In,,Selenium Automation Practice Form, andwww.tutorialspoint.com.

Selenium Javascript Tutorial 2

Code Implementation

package org.example;import org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.edge.EdgeDriver;import java.util.concurrent.TimeUnit;public class JavaScriptSelenium {   public static void main(String[] args) throws InterruptedException {      // Initiate the Webdriver      WebDriver driver = new EdgeDriver();            // adding implicit wait of 25 secs      driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);      // Creating a reference variable JavaScriptExecutor interface.      JavascriptExecutor j = (JavascriptExecutor) driver;      // launching a URL      j.executeScript("window.location ='https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php'");      // getting current URL      String url =  j.executeScript("return document.URL;").toString();      System.out.println("Getting the current URL: " + url);      //identify text      WebElement t = driver.findElement(By.xpath("//*[@id='practiceForm']/h1"));      String text = (String) j.executeScript("return arguments[0].innerText", t);      System.out.println("Text is: " + text);      // getting current domain      String domain = j.executeScript("return document.domain;").toString();      System.out.println("Getting the current domain: " + domain);      // enter text in input box      WebElement e = driver.findElement(By.xpath("//*[@id='name']"));      j.executeScript("arguments[0].value='JavaScript';", e);      // get text entered      String text1 = (String) j.executeScript("return arguments[0].value", e);      System.out.println("Entered text is: " + text1);      // perform click      WebElement b = driver.findElement(By.xpath("//*[@id='collapseTwo']/div/ul/li[2]/a"));      j.executeScript("arguments[0].click();", b);      //identify text      WebElement w = driver.findElement(By.xpath("//*[@id='signInForm']/h1"));      // get text after click      String text2 = (String) j.executeScript("return arguments[0].innerText", w);      System.out.println("Text found after clicking: " + text2);      // refresh browser      j.executeScript("history.go(0)");      // getting current URL after browser refresh      String url1 =  j.executeScript("return document.URL;").toString();      System.out.println("Getting the current URL after browser refresh: " + url1);      //identify text again after refresh      WebElement y = driver.findElement(By.xpath("//*[@id='signInForm']/h1"));      // get text after refresh      String text3 = (String) j.executeScript("return arguments[0].innerText", y);      System.out.println("Text found after refresh: " + text3);      // getting current domain after browser refresh      String domain1 = j.executeScript("return document.domain;").toString();      System.out.println("Getting the current domain after browser refresh: " + domain1);      // Quitting browser      driver.quit();   }}

Output

Getting the current URL: https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.phpText is: Student Registration FormGetting the current domain: www.tutorialspoint.comEntered text is: JavaScriptText found after clicking: Welcome, Login InGetting the current URL after browser refresh: https://www.tutorialspoint.com/selenium/practice/login.phpText found after refresh: Welcome, Login InGetting the current domain after browser refresh: www.tutorialspoint.comProcess finished with exit code 0

In the above example, we had launched a URL and obtained the current URL with the message in the console -Getting the current URL:Selenium Automation Practice Form. Then retrieved the text and domain with the message in the console -Text is: Student Registration Form andGetting the current domain:www.tutorialspoint.com respectively.

Next, we entered the text Selenium in an input box and retrieved its value with the message in the console -Entered text is: Selenium. Then, we clicked the Login link and got the text after navigation with the message in console:Text found after clicking: Check Box.

Finally, we had refreshed the page and obtained current URL, text and domain of the page with the messages in the console -Getting the current URL after browser refresh:Selenium Automation Practice Form,Text found after refresh: Check Box, andGetting the current domain after browser refresh:www.tutorialspoint.com respectively.

Finally, the messageProcess finished with exit code 0 was received, signifying successful execution of the code

In this tutorial, we had discussed how to use JavaScript using Selenium Webdriver.

Print Page
Advertisements

[8]ページ先頭

©2009-2025 Movatter.jp