Selenium là một công cụ tự động hóa dựa trên web mã nguồn mở phổ biến. Đôi khi, trình điều khiển web Selenium gặp phải sự cố khi tương tác với một số phần tử web. Ví dụ: người dùng mở một trang web và có một cửa sổ bật lên không mong muốn sẽ ngăn trình điều khiển web thực hiện các thao tác và tạo ra kết quả không chính xác. Đây là nơi JavascriptExecutor được sử dụng
JavaScriptExecutor trong Selenium là gì?
JavaScriptExecutor là một giao diện được sử dụng để thực thi JavaScriprt thông qua Selenium webdriver. JavaScript là ngôn ngữ lập trình tương tác với HTML trong trình duyệt và để sử dụng chức năng này trong Selenium, cần có JavascriptExecutor
JavascriptExecutor cung cấp hai phương thức
- ExecuteScript
- Thực thiAsyncScript
1. ExecuteScript
Phương thức này thực thi javaScript trong cửa sổ hoặc khung hiện được chọn. Tập lệnh chạy dưới dạng hàm ẩn danh và tập lệnh có thể trả về giá trị. Các kiểu dữ liệu được trả về là
- WebYếu tố
- Danh sách
- Chuỗi
- Dài
- Boolean
2. Thực thiAsyncScript
Phương pháp này được sử dụng để thực thi Javascript không đồng bộ trong cửa sổ hoặc khung hiện tại. Javascript không đồng bộ được thực thi là một luồng đơn trong khi phần còn lại của trang phân tích cú pháp liên tục. mà nâng cao hiệu suất
Bắt đầu với JavaScriptExecutor
1. Nhập gói
Nhập tổ chức. openqa. selen. JavascriptExecutor;
2. Tạo một tài liệu tham khảo
Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
3. Gọi phương thức JavascriptExecutor
js. execScript[script, args];
Javascript
// importing the package
Import org.openqa.selenium.JavascriptExecutor;
// creating a reference
JavascriptExecutor js = [JavascriptExecutor] driver;
// calling the method
js.executeScript[script, args];
Ví dụ về JavascriptExecutor trong Selenium
ví dụ 1. JavascriptExecutor trong Selenium để làm mới cửa sổ trình duyệt
Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
js. execScript[“vị trí. tải lại[]”];
ví dụ 2. JavascriptExecutor trong Selenium để gửi văn bản
Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
js. execScript[“tài liệu. getElementByID['id phần tử']. giá trị = ‘xyz’;”];
Ví dụ 3. Tạo cửa sổ bật cảnh báo
Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
js. execScript["alert['hello world'];"];
Ví dụ 4. Nhận InnerText của một trang web
Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
chuỗi sText = js. execScript[“trả lại tài liệu. tài liệuElement. văn bản bên trong;”]. toString[];
Ví dụ 5. Nhận tiêu đề của một trang web
Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
chuỗi sText = js. execScript[“trả lại tài liệu. Tiêu đề;"]. toString[];
Ví dụ 6. Trang cuộn
Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
//Cuộn dọc – xuống 150 pixel
js. execScript[“cửa sổ. scrollBy[0,150]”];
Nhấp vào một phần tử bằng JavaScriptExecutor
Trong ví dụ này, chúng tôi sử dụng Selenium webdriver và javascriptexecutor để mở trang web geeksforgeeks và nhấp vào một phần tử
Java
import
org.openqa.selenium.By;
import
org.openqa.selenium.JavascriptExecutor;
import
Import org.openqa.selenium.JavascriptExecutor;
1
import
Import org.openqa.selenium.JavascriptExecutor;
3
import
Import org.openqa.selenium.JavascriptExecutor;
5
Import org.openqa.selenium.JavascriptExecutor;
6 Import org.openqa.selenium.JavascriptExecutor;
7 Import org.openqa.selenium.JavascriptExecutor;
8
Import org.openqa.selenium.JavascriptExecutor;
9Import org.openqa.selenium.JavascriptExecutor;
6 // creating a reference
1 // creating a reference
2 // creating a reference
3
Import org.openqa.selenium.JavascriptExecutor;
9// creating a reference
5
// creating a reference
6// creating a reference
7
// creating a reference
8// creating a reference
9JavascriptExecutor js = [JavascriptExecutor] driver;
0
// creating a reference
8JavascriptExecutor js = [JavascriptExecutor] driver;
2____33
JavascriptExecutor js = [JavascriptExecutor] driver;
4
// creating a reference
6JavascriptExecutor js = [JavascriptExecutor] driver;
6
// creating a reference
6JavascriptExecutor js = [JavascriptExecutor] driver;
8JavascriptExecutor js = [JavascriptExecutor] driver;
9 // calling the method
0
JavascriptExecutor js = [JavascriptExecutor] driver;
4
// creating a reference
6// calling the method
3
// creating a reference
6// calling the method
5
JavascriptExecutor js = [JavascriptExecutor] driver;
4
// creating a reference
6// calling the method
8
// creating a reference
6js.executeScript[script, args];
0js.executeScript[script, args];
1JavascriptExecutor js = [JavascriptExecutor] driver;
3
JavascriptExecutor js = [JavascriptExecutor] driver;
4
// creating a reference
6js.executeScript[script, args];
5
// creating a reference
8js.executeScript[script, args];
7js.executeScript[script, args];
8js.executeScript[script, args];
9
JavascriptExecutor js = [JavascriptExecutor] driver;
4
// creating a reference
6import
2
// creating a reference
6import
4
JavascriptExecutor js = [JavascriptExecutor] driver;
4
// creating a reference
6import
7
// creating a reference
6import
9org.openqa.selenium.By;
0org.openqa.selenium.By;
1
Import org.openqa.selenium.JavascriptExecutor;
9org.openqa.selenium.By;
3
org.openqa.selenium.By;
3
Giải thích mã. Đoạn script trên dùng để mở Edge Browser và điều hướng đến trang web geeksforgeeks và nhấp vào một phần tử bằng JavaScriptExecutor. Vì vậy, hãy xem nó hoạt động như thế nào