Thực thi tệp javascript trong Selenium python

Trong các bài viết trước về Hướng dẫn Selenium Python, chúng ta đã đề cập đến “Cách xử lý hộp kiểm, danh sách thả xuống tĩnh và các thành phần giao diện người dùng khác trong Selenium Python“. Trong hướng dẫn này, chúng ta sẽ tìm hiểu JavaScript Executor trong Selenium Python

Mô hình đối tượng tài liệu hoặc DOM có thể truy cập tất cả các phần tử trên trang web với sự trợ giúp của Javascript. Nếu chúng tôi kiểm tra bất kỳ phần tử nào trên trang web và điều hướng đến bảng điều khiển trong Công cụ dành cho nhà phát triển, thì tất cả các phương pháp có sẵn để truy cập các phần tử web sẽ khả dụng

Do đó, nó có các khả năng mà Selenium có thể thực hiện. Selenium có tính năng thực thi mã Javascript [để truy cập DOM] tích hợp với nó. Điều này là cần thiết bất cứ khi nào Selenium không thể xác định một phần tử hoặc thực hiện một số hành động trên nó

Selenium chứa phương thức exec_script[] để thực thi các lệnh Javascript được truyền dưới dạng đối số cho phương thức đó. Ngoài ra, trong khi làm việc với các phương thức DOM [getElementsByName và getElementsById, v.v.] tìm nạp một mảng các phần tử phù hợp. Vì vậy, chúng ta cần đề cập đến chỉ mục để định vị một phần tử cụ thể. Ví dụ. getElementsByName[‘text-box’] [0], đề cập đến phần tử phù hợp đầu tiên trên trang web

Bây giờ chúng ta hãy xem cách trích xuất các giá trị từ hộp chỉnh sửa với sự trợ giúp của trình thực thi Javascript

1

2

3

4

5

6

7

8

9

# nhập webdriver

từ selenium nhập webdriver

trình điều khiển = trình điều khiển web. Chrome [executable_path = " . \\ chromedriver. exe"]

# lấy phương thức để khởi chạy URL

trình điều khiển. nhận["https. //www. tài liệu kiểm thử phần mềm. com/sample-webpage-to-automate/"]

# để nhập văn bản vào hộp chỉnh sửa

trình điều khiển. find_element_by_name ["tên người dùng"].send_keys["Python"]

# trích xuất giá trị bằng Javascript Executor

in[trình điều khiển. execute_script['return tài liệu. getElementsByName["tên người dùng"][0]. giá trị']]

Chúng tôi cũng có thể thực hiện các thao tác nhấp chuột trên các phần tử web với sự trợ giúp của trình thực thi Javascript

1

2

3

4

5

6

7

8

# nhập webdriver

từ selenium nhập webdriver

trình điều khiển = trình điều khiển web. Chrome [executable_path = " . \\ chromedriver. exe"]

# lấy phương thức để khởi chạy URL

trình điều khiển. nhận["https. //www. tài liệu kiểm thử phần mềm. com/sample-webpage-to-automate/"]

# để nhấp vào nút bằng trình thực thi Javascript

btn = trình điều khiển. find_element_by_name ["spbutton"].nhấp chuột[]

trình điều khiển. execute_script ["arguments[0]. click[];",btn]

Có một số thao tác như cuộn xuống trang không thể thực hiện được với sự trợ giúp của Selenium. Đối với hành động này, Javascript Executor có thể được sử dụng cho mục đích này

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ố thành phần 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

  1. ExecuteScript
  2. 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. chức vụ;"]. 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 reference1 // creating a reference2 // creating a reference3

Import org.openqa.selenium.JavascriptExecutor;9// creating a reference5

// creating a reference6// creating a reference7

// creating a reference8// creating a reference9JavascriptExecutor js = [JavascriptExecutor] driver;0

// creating a reference8JavascriptExecutor js = [JavascriptExecutor] driver;2JavascriptExecutor js = [JavascriptExecutor] driver;3

JavascriptExecutor js = [JavascriptExecutor] driver;4

// creating a reference6JavascriptExecutor js = [JavascriptExecutor] driver;6

// creating a reference6JavascriptExecutor js = [JavascriptExecutor] driver;8JavascriptExecutor js = [JavascriptExecutor] driver;9 // calling the method0

JavascriptExecutor js = [JavascriptExecutor] driver;4

// creating a reference6// calling the method3

// creating a reference6// calling the method5

JavascriptExecutor js = [JavascriptExecutor] driver;4

// creating a reference6// calling the method8

// creating a reference6js.executeScript[script, args];0_______5_______1JavascriptExecutor js = [JavascriptExecutor] driver;3

JavascriptExecutor js = [JavascriptExecutor] driver;4

// creating a reference6js.executeScript[script, args];5

// creating a reference8js.executeScript[script, args];7js.executeScript[script, args];8js.executeScript[script, args];9

JavascriptExecutor js = [JavascriptExecutor] driver;4

// creating a reference6import2

// creating a reference6import4

JavascriptExecutor js = [JavascriptExecutor] driver;4

// creating a reference6import7

// creating a reference6import9org.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

Làm cách nào để chạy tệp JavaScript trong Selenium?

Bắt đầu với JavaScriptExecutor .
Nhập gói. Nhập tổ chức. openqa. selen. JavascriptExecutor;
Tạo một tài liệu tham khảo. Trình điều khiển JavascriptExecutor js = [JavascriptExecutor];
Gọi phương thức JavascriptExecutor. js. execScript[script, args];

Làm cách nào để thực thi một hàm JavaScript trong Python?

Khai báo một hàm sử dụng định dạng JavaScript và đặt nó trong chuỗi nhiều dòng [""" hoặc ''']. Bạn có thể lưu trữ nó trong một biến gọi là js_add. Truyền biến hàm cho eval_js[] để dịch nó sang Python tương đương. Hiển thị kết quả bằng cách gọi hàm và chuyển hai số làm đối số

Python có thể chạy JavaScript không?

JS2PY hoạt động bằng cách dịch trực tiếp JavaScript sang Python . Nó chỉ ra rằng bạn có thể chạy JS trực tiếp từ mã Python mà không cần cài đặt các công cụ lớn bên ngoài như V8.

Chúng tôi có thể thực thi JavaScript trên trình duyệt bằng Selenium không?

Trình quản trị web Selenium có thể thực thi Javascript . Sau khi tải một trang, bạn có thể thực thi bất kỳ javascript nào bạn muốn. Selenium phải được cài đặt webdriver để hoạt động. Tất cả những gì cần thiết để thực thi Javascript là gọi phương thức exec_script[js] trong đó js là mã javascript của bạn.

Chủ Đề