Xử lý Authentication Popup Window sử dụng Selenium WebDriver
Bài viết được sự cho phép của tác giả Tô Thị Vân Anh
Bạn có thể gặp Authentication popup này khi thực hiện truy cập vào một trang ứng dụng hay địa chỉ nào đó, ở đây bạn cần phải nhập tên đăng nhập và mật khẩu đúng để có thể thực hiện tiếp các thao tác, tác vụ tiếp theo trên trang đó. Loại popup này không phải là popup thông thường được sinh ra từ java-script của ứng dụng đó, mà là một loại hộp thoại của trình duyệt, do đó mà Selenium không thể thực hiện với cách mà chúng ta vẫn làm là sử dụng sendKey() được.
Để giải quyết vấn đề này, chúng ta có hai cách như dưới đây là những cách mà mình tổng hợp được, các bạn có thể tham khảo và nếu có thêm cách nào khác thì vui lòng chia sẻ cho mình và các bạn khác nữa nhé!
1. Sử dụng Selenium webdriver
Cách đơn giản nhất là truyền trực tiếp username và password cùng với đường dẫn trang web yêu cầu theo cú pháp:
http://Username:Password@SiteURL
Mình có ví dụ:
http://msanh:[email protected]
Trong đó:
msanh là username của mình
12121221 là mật khẩu
Và trang web đăng nhập của mình ở đây là http://www.thichanbanhcuon.com.vn
Code thì sẽ như thế này:
String URL = "http://" + msanh + ":" + 12121221 + "@" + www.thichanbanhcuon.com.vn; driver.get(URL); Alert alert = driver.switchTo().alert(); alert.accept();
2. Sử dụng AutoIT
Bằng cách sử dụng AutoIT ta cũng có thể xử lý được với trường hợp popup này như sau.
Nếu bạn chưa cài đặt AutoIT thì tham khảo qua các bước mình đã đề cập ở bài viết này nhé!
Nếu đã sẵn sàng rồi, thì chúng ta bắt đầu tạo một AutoIT script có nội dung cú pháp như dưới đây:
; To pass user name and password WinWaitActive("Windows Security") Send("admin") Send("{TAB}") Send("admin") Send("{ENTER}")
Hoặc có thể viết gộp như này cũng được:
WinWaitActivate("Authentication Required","") Send("rajkumar{TAB}myPassword{ENTER}")
Lưu lại và sau đó compile AutoIT script file này thành 1 file exe, lấy đường dẫn của file exe này rồi đưa vào code thôi:
public static void login(String email, String password) throws Exception{ driver.get(URL); //Passing the AutoIt Script here Runtime.getRuntime().exec("D:\\Selenium\\AutoItFiles\\ExecutableFiles\\HandleAuth.exe"); driver.findElement loginpage.setEmail(email); loginpage.setPassword(password); loginpage.clickOnLogin(); }
Bài viết gốc được đăng tải tại vananhtooo.wordpress.com
Có thể bạn quan tâm:
- Xử lý SSL Certificate trong Selenium WebDriver
- Mã hóa mật khẩu trong Selenium Webdriver
- JavaScript Executor trong Selenium Webdriver
Xem thêm Việc làm Developer hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?