Cách xử lý xác thực proxy trong Selenium webdriver

⚡ Tóm tắt thông minh

Xác thực proxy trong Selenium WebDriver xử lý cửa sổ bật lên yêu cầu thông tin đăng nhập xuất hiện khi trình duyệt kết nối thông qua máy chủ proxy được bảo mật. Bởi vì Selenium Không thể thao tác trực tiếp với các hộp thoại gốc, có hai cách tiếp cận sử dụng công cụ AutoIt và các cảnh báo tích hợp sẵn.

  • 🛡️ Vai trò ủy quyền: Máy chủ proxy là một bên trung gian giúp tăng cường quyền riêng tư, bảo mật và khả năng lọc nội dung.
  • 🔀 SOCKS so với HTTP: Giao thức SOCKS không diễn giải dữ liệu; một máy chủ proxy HTTP chỉ đọc các yêu cầu HTTP.
  • 🪟 Cửa sổ bật lên gốc: Selenium Không thể xử lý các hộp thoại của hệ điều hành, do đó cần sự trợ giúp từ bên ngoài.
  • 🛠️ Phương pháp AutoIt: Một đoạn mã AutoIt đã được biên dịch sẽ gửi tên người dùng và mật khẩu đến cửa sổ bật lên.
  • 🚨 Phương thức cảnh báo: Chuyển sang chế độ thông báo và gửi thông tin đăng nhập bằng hàm sendKeys, sau đó chấp nhận.

Xử lý xác thực Proxy trong Selenium webdriver

Proxy là gì?

Proxy hoạt động như một trung gian giữa máy khách gửi yêu cầu và máy chủ phản hồi. Công dụng chính của proxy là duy trì quyền riêng tư và đóng gói giữa nhiều hệ thống tương tác.

Proxy cũng có thể thêm một lớp bảo mật khác trên web bằng cách hoạt động như một tường lửa giữa Máy khách và máy chủ web. Điều này đặc biệt được sử dụng khi các trang web mà khách hàng sử dụng phải được gắn nhãn là được phép hoặc bị chặn dựa trên nội dung trang web.

Quá trình này được gọi là 'Lọc nội dung' và được sử dụng phổ biến nhất trong các Cơ sở giáo dục, Văn phòng công ty, v.v. Việc lọc nội dung có thể được thực hiện dễ dàng với sự trợ giúp của proxy. Về mặt trên Internet, proxy có thể được triển khai như một máy chủ riêng biệt nằm giữa máy khách và máy chủ web hoặc cơ sở dữ liệu thực tế phản hồi.

Sự khác biệt giữa SOCKS và Proxy HTTP

SOCKS Http Proxy
SOCKS là viết tắt của ổ cắm bảo mật. Nó thường được sử dụng làm tường lửa giữa Máy khách và máy chủ Proxy HTTP cũng có thể được sử dụng làm tường lửa giữa Máy khách và máy chủ nhưng chỉ có thể được sử dụng cho các Yêu cầu HTTP
SOCKS không diễn giải dữ liệu được trao đổi Proxy HTTP diễn giải dữ liệu được trao đổi giữa Máy khách và máy chủ
Chậm hơn về mặt hiệu suất Hiệu suất tốt hơn so với SOCKS

Cách xử lý proxy trong Selenium Trình điều khiển web trong Chrome

Xác thực Proxy HTTP với Selenium trong Chrome có thể được xử lý bằng cách sử dụng các phương pháp sau

  • Sử dụng công cụ AutoIt
  • Sử dụng cảnh báo

Sử dụng công cụ AutoIt

AutoIt là một công cụ của bên thứ ba được sử dụng để tự động hóa màn hình máy tính Windows. Vì vậy, Selenium chỉ xử lý các cửa sổ và cửa sổ bật lên dựa trên web, không thể xử lý các điều khiển hệ điều hành bằng cách sử dụng Selenium.

Điều này đòi hỏi phải sử dụng các công cụ bên thứ ba như AutoIt để tích hợp với hệ thống. SeleniumVì vậy, AutoIt thường được sử dụng nhất để xử lý việc tải lên và tải xuống tập tin trên các trang web.

Để sử dụng AutoIt, bạn cần tải xuống và cài đặt phần mềm AutoIt trên máy tính của mình.

Hướng dẫn tải xuống và cài đặt AutoIt được đề cập trong phần này. bài viết .

Mở Chương trình – Công cụ Autoit – SciTE Script Editor và thêm tập lệnh AutoIt được đề cập bên dưới vào trình chỉnh sửa Autoit và lưu nó dưới dạng 'ProxyAuthentication.au3' trong hệ thống của bạn

Biên dịch tệp và chuyển đổi nó thành 'ProxyAuthentication.exe.'

In Eclipse, thêm tệp AutoIt vào Selenium Viết kịch bản và chạy

Dưới đây là đoạn mã AutoIt dùng để xác thực HTTP Proxy.

Send("guru99{ENTER}")
Send("guru99{ENTER}")

Bạn cần truyền tệp AutoIt để thực thi. Selenium webdriver sử dụng mã dưới đây

nguồn Code:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutoItDemo {
    public static void main(String[] args) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        //Passing the AutoIt Script to Selenium	
        Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe");
    }
}

Code Giải thích:

  • Ở bước đầu tiên, Bạn đang khởi tạo phiên bản trình điều khiển Chrome bằng cách đặt thuộc tính hệ thống để trỏ tệp chromedriver.exe
  • Bước thứ hai, bạn sẽ khởi tạo một đối tượng của trình điều khiển web và truyền trang web đó vào. URL sử dụng phương thức get
  • Cuối cùng, bạn đang truyền tên người dùng và mật khẩu đến cửa sổ bật lên xác thực HTTP Proxy bằng cách sử dụng một tập lệnh AutoIt.

Code Đầu ra:

Xử lý cảnh báo tên người dùng bằng AutoIt
Xử lý cảnh báo tên người dùng bằng AutoIt
Xử lý cảnh báo mật khẩu bằng AutoIt

Xử lý cảnh báo mật khẩu bằng AutoIt
Màn hình xác thực proxy thành công

Màn hình xác thực proxy thành công

Sử dụng cảnh báo

Cảnh báo là tính năng đơn giản, có sẵn được cung cấp bởi Selenium trình điều khiển web. Bạn có thể xử lý cửa sổ bật lên xác thực proxy bằng cách sử dụng Selenium trình điều khiển web bằng cách chuyển sang cảnh báo xác thực proxy HTTP và chuyển trực tiếp tên người dùng và mật khẩu đến cảnh báo. Với sự trợ giúp của phương thức gửi khóa.

Ví dụ:

Kịch bản thử nghiệm:

Xử lý cửa sổ bật lên xác thực HTTP Proxy trên trang web: https://demo.guru99.com/test/basic_auth.php sử dụng Cảnh báo trong Selenium trình điều khiển web.

Mã nguồn Ví dụ:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AlertsDemo {
    public static void main(String args[]) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\Data_Personal\\Software\\chromedriver_win32\\chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        // Handling Username alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
        // Handling Password alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
    }
}

Code Đầu ra

Xác thực proxy được thực hiện thành công.

Code Giải thích:

  • Ban đầu, Bạn đang khởi tạo một phiên bản trình điều khiển Chrome bằng cách đặt thuộc tính webdriver để trỏ đến vị trí của tệp chromedriver.exe
  • Sau đó, bạn đang mở... URL của trang web yêu cầu bằng cách truyền URL như một tham số cho phương thức driver.get()
  • Một khi URL Khi cửa sổ được mở, bạn chuyển sang cửa sổ thông báo tên người dùng và nhập tên người dùng – guru99. Sau đó, bạn nhấp vào nút OK trên cửa sổ thông báo bằng phương thức alert.accept.
  • Sau đó, Bạn chuyển sang cảnh báo mật khẩu và gửi mật khẩu – guru99. Sau đó, bạn nhấp vào nút OK trên cảnh báo bằng phương thức Alert.accept

Câu Hỏi Thường Gặp

Bạn có thể nhúng thông tin đăng nhập dưới dạng https://user:pass@site.com, nhưng Chrome hiện đại và Firefox Chặn điều này vì lý do bảo mật. Hiện tại, cảnh báo hoặc tiện ích mở rộng trình duyệt đáng tin cậy hơn cho việc xác thực proxy.

AutoIt tự động hóa Windows các điều khiển máy tính để bàn Selenium không thể truy cập được, ví dụ như cửa sổ bật lên xác thực gốc và hộp thoại tải lên tệp. Bạn biên dịch một tập lệnh AutoIt thành tệp thực thi và gọi nó từ Selenium Mã.

Máy chủ proxy chuyển hướng lưu lượng truy cập cho các ứng dụng hoặc trình duyệt cụ thể, chủ yếu là để ẩn địa chỉ IP hoặc lọc nội dung. Mạng VPN mã hóa toàn bộ lưu lượng truy cập của thiết bị trên toàn hệ thống, cung cấp khả năng bảo mật mạnh mẽ hơn so với máy chủ proxy thông thường.

Đúng vậy. Các công cụ kiểm thử dựa trên AI phát hiện hộp thoại xác thực, chèn thông tin đăng nhập đã lưu trữ và tự khắc phục khi hành vi của cửa sổ bật lên thay đổi, giảm sự phụ thuộc vào các tập lệnh AutoIt dễ bị lỗi trên các trình duyệt khác nhau.

Các công cụ AI tự động xoay vòng máy chủ proxy, phát hiện các yêu cầu bị chặn và điều chỉnh thời gian chờ khi xuất hiện lời nhắc xác thực. Quá trình tự động hóa này cải thiện tính ổn định của thử nghiệm đối với các trang web sử dụng proxy của công ty hoặc proxy lọc nội dung.

Vâng. Selenium Phiên bản 4 bổ sung hỗ trợ giao thức Chrome DevTools, cho phép bạn thiết lập thông tin xác thực HTTP theo chương trình và xử lý xác thực cơ bản, tránh sử dụng AutoIt trong nhiều trường hợp sử dụng proxy.

Tóm tắt bài viết này với: