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:[email protected]
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
- E Embedded Developer là gì? Cần học gì để trở thành Embedded Developer
- N Năm 2022 rực rỡ tại EPAM Vietnam – Hiện thực hoá tương lai từ nguồn lực nhân sự mạnh mẽ
- 7 7 Xu hướng Mobile Marketing đáng mong chờ nhất năm 2023
- G Giới thiệu về ngân hàng NAB & NICV
- 1 10 xu hướng ứng dụng di động dự đoán sẽ thống trị năm 2023
- 5 5 xu hướng của ngành kiểm thử tự động trong năm 2023
- T Top 5 tips and tricks hot nhất của JavaScript năm 2023
- 2 2023 tới rồi – Dưới đây là 5 startup tech trend sẽ phát triển
- 1 12 Thư viện JavaScript trực quan hoá dữ liệu hot nhất năm 2023
- S Sách hay nhất dành cho lập trình viên (2023)