Thực thi javascript với Selenium Python

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

  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. 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 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;2____33

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];0js.executeScript[script, args];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

Chúng tôi có thể thực thi JavaScript trong 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.

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ố

Chúng tôi có thể tự động hóa JavaScript bằng Selenium không?

Selenium là một công cụ thử nghiệm tự động mã nguồn mở hỗ trợ một số ngôn ngữ kịch bản như C#, Java, Perl, Ruby, JavaScript, v.v. . Tùy thuộc vào ứng dụng được kiểm tra, người ta có thể chọn tập lệnh cho phù hợp.

Làm cách nào để nhấp vào nút JavaScript trong Selenium Python?

Thực thi javascript ở mức phần tử. Trong quá trình này, chúng tôi sẽ xác định phần tử với sự trợ giúp của các phương thức trình điều khiển web như find_element_by_xpath hoặc find_element_by_id, v.v. Sau đó, thực hiện hành động cần thiết trên phần tử đó như nhấp vào phần tử . Cuối cùng, phương thức exec_script[] được gọi.

Chủ Đề