Selenium là một công cụ kiểm tra tự động hóa mã nguồn mở. Nó được sử dụng để kiểm tra các ứng dụng web. Selenium hỗ trợ nhiều ngôn ngữ như: Java, Python, PHP, C #, Ruby. Để kiểm thử với JavaScript thì chúng ta phải sử dụng JavaScriptExecutor. Nó cung cấp 2 phương thức "executescript" và "executeAsyncScript" để chạy JavaScript ở trong cửa sổ hoặc trang web được chọn. Hôm nay mình sẽ đi giới thiệu với các bạn về cách sử dụng JavaScript trong Selenium WebDriver.
Để sử dụng Javascript trong Selenium WebDriver chúng ta cần import gói:

org.openqa.selenium.JavascriptExecutor;

Cú pháp của JavascriptExecutor:

JavascriptExecutor js = (JavascriptExecutor) driver;  
js.executeScript(Script,Arguments);

Một số ví dụ có thể sử dụng JavascriptExecutor trong Selenium WebDriver

  1. Lấy tiêu đề của trang hiện tại
js.executeScript"return document.title;");

Ví dụ:

JavascriptExecutor js = (JavascriptExecutor)driver;
String title =  js.executeScript("return document.title;").toString();
System.out.println(title);
  1. Click vào button login và thực hiện tạo Alert sử dụng JavaScriptExcutor

Kịch bản: Mở website "http://demo.guru99.com/V4/ " và thực hiện đăng nhập -> hiển thị alert đăng nhập thành công

Ví dụ:

package demo1;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class JavaScript {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver", "C:\\Users\\bui.thi.dien\\Downloads\\Setting\\Selenium\\chrome ver77\\chromedriver.exe");
		WebDriver driver= new ChromeDriver();			
		
        //Tạo đối tượng JavascriptExecutor	
        JavascriptExecutor js = (JavascriptExecutor)driver;		
        		
        //Mở trang web		
        driver.get("http://demo.guru99.com/V4/");			
        		
        WebElement button =driver.findElement(By.name("btnLogin"));			
        		
        //Đăng nhập guru99	
        driver.findElement(By.name("uid")).sendKeys("mngr34926");					
        driver.findElement(By.name("password")).sendKeys("amUpenu");					
        		
        //Thực hiện click vào button Login sử dụng JavascriptExecutor		
        js.executeScript("arguments[0].click();", button);
                                
        //Tạo alert sử dugnj JavascriptExecutor. Hiển thị alert			
        js.executeScript("alert('Welcome to Guru99');");   
	}
}

  1. Thực hiện nhập text vào text field mà không sử dụng sendKey()
openjs.executeScript("document.getElementById('some id').value='someValue';");

Ví dụ:

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('Email').value='[email protected]';");
  1. Lấy tên domain của trang web

Cú pháp:

JavascriptExecutor js = (JavascriptExecutor) driver;
String domain = (String) js.executeScript(return document.domain”);

Ví dụ:

driver.get(“http://google.co.in/”);
JavascriptExecutor js = (JavascriptExecutor) driver;
String domain = (String) js.executeScript(return document.domain”);
System.out.println(“domain :+ domain);
  1. Lấy URL

Cú pháp:

JavascriptExecutor js = (JavascriptExecutor) driver;
String URL = (String) js.executeScript(return document.URL”);

Ví dụ:

driver.get(“http://google.co.in/”);
JavascriptExecutor js = (JavascriptExecutor) driver;
String URL = (String) js.executeScript(return document.URL”);
System.out.println(“Full URL :+ URL);

Tài liệu tham khảo: https://seleniumbycharan.com/2015/06/03/using-javascript-in-selenium-webdriver/ https://www.guru99.com/execute-javascript-selenium-webdriver.html https://blog.webnersolutions.com/selenium-webdriver-javascript