Cảnh báo trong Selenium là một hộp thông báo nhỏ xuất hiện trên màn hình để cung cấp cho người dùng một số thông tin hoặc thông báo. Nó thông báo cho người dùng một số thông tin hoặc lỗi cụ thể, yêu cầu quyền thực hiện một số tác vụ nhất định và nó cũng cung cấp các thông báo cảnh báo.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xử lý cửa sổ bật lên trong Selenium và các loại cảnh báo khác nhau được tìm thấy trong Kiểm tra ứng dụng web. Chúng ta cũng sẽ xem cách xử lý Cảnh báo trong Selenium WebDriver và tìm hiểu cách chấp nhận và từ chối cảnh báo tùy thuộc vào loại cảnh báo
Mục lục
Các loại cảnh báo trong Selenium
1] Cảnh báo đơn giản
Lớp cảnh báo đơn giản trong Selenium hiển thị một số thông tin hoặc cảnh báo trên màn hình
//demo.guru99.com/test/delete_customer.php
Bước 2] Nhập bất kỳ id khách hàng nào
Bước 3] Sau khi nhập ID khách hàng, Nhấp vào nút “Gửi”
Bước 4] Từ chối/chấp nhận cảnh báo
Xử lý cảnh báo trong Selenium Webdriver
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.NoAlertPresentException; import org.openqa.selenium.Alert; public class AlertDemo { public static void main[String[] args] throws NoAlertPresentException,InterruptedException { System.setProperty["webdriver.chrome.driver","G:\\chromedriver.exe"]; WebDriver driver = new ChromeDriver[]; // Alert Message handling driver.get["//demo.guru99.com/test/delete_customer.php"]; driver.findElement[By.name["cusid"]].sendKeys["53920"]; driver.findElement[By.name["submit"]].submit[]; // Switching to Alert Alert alert = driver.switchTo[].alert[]; // Capturing alert message. String alertMessage= driver.switchTo[].alert[].getText[]; // Displaying alert message System.out.println[alertMessage]; Thread.sleep[5000]; // Accepting alert alert.accept[]; } }
đầu ra
Khi bạn thực thi đoạn mã trên, nó sẽ khởi chạy trang web và khi nhấp vào liên kết “Nhấp vào đây”, nó sẽ mở ra một cửa sổ con trong tab mới. Bạn có thể đóng cửa sổ con và chuyển sang cửa sổ cha sau khi thao tác hoàn tất. Do đó xử lý nhiều hơn một cửa sổ trong ứng dụng
Trong hướng dẫn này của loạt bài Selenium Python, chúng ta sẽ học cách xử lý các hộp cảnh báo và hộp bật lên trên một trang web. Thông thường, các ứng dụng web sẽ hiển thị các thông báo cảnh báo để xác nhận hành động của người dùng.
Cảnh báo là một cửa sổ bật lên. Nó được kích hoạt do một số hành động do người dùng thực hiện hoặc tự động do một số cài đặt hệ thống
Mục đích của chúng là cung cấp một số thông tin cho người dùng [cũng có thể là cảnh báo] hoặc xin phép người dùng hoặc lấy một số thông tin đầu vào từ người dùng
Nhấp vào đây để quay lại hướng dẫn chính về Selenium Python
Xử lý hộp thông báo & hộp bật lên trong Selenium Python
Chúng ta có thể phân loại Cảnh báo thành ba loại sau
i] Cảnh báo đơn giản
ii] Thông báo xác nhận
iii] Cảnh báo kịp thời
Bây giờ chúng ta sẽ thảo luận chi tiết về cách xử lý ba loại cảnh báo trên
Giới thiệu – Xử lý hộp thông báo & hộp bật lên
Bất cứ khi nào Cảnh báo được kích hoạt và cửa sổ bật lên xuất hiện trên trang web. Quyền kiểm soát chỉ còn lại với trang web mẹ. Vì vậy, nhiệm vụ đầu tiên của Selenium Webdriver là chuyển tiêu điểm từ trang mẹ sang cửa sổ bật lên Cảnh báo. Nó có thể được thực hiện bằng cách sử dụng đoạn mã sau
alert_obj = driver.switch_to.alert
Sau khi điều khiển đã chuyển sang cửa sổ bật lên Cảnh báo, chúng ta có thể thực hiện các hành động khác nhau trên nó bằng các phương pháp được đề xuất như
- cảnh báo_obj. accept[] – được sử dụng để chấp nhận Cảnh báo
- cảnh báo_obj. bỏ [] – được sử dụng để hủy Cảnh báo
- báo động. send_keys[] – được sử dụng để nhập giá trị vào hộp văn bản Cảnh báo
- báo động. text[] – được sử dụng để truy xuất tin nhắn có trong cửa sổ bật lên Cảnh báo
Xử lý một cảnh báo đơn giản
Một cảnh báo đơn giản có một thông báo trên đó và nút 'OK'. Khi nó bật lên, người dùng nhấp vào nút 'OK' để chấp nhận nó
Đây là mã HTML sẽ tạo Cảnh báo đơn giản khi nhấp vào nút 'Tạo cảnh báo' trên trang chính
Simple Alert Demonstration
click the Below Button to create an Alert
Create Alert function alertFunction[] { alert["Hi!, I am a Simple Alert. Please Click on the 'OK' Button."]; }
Bạn cần sao chép mã HTML ở trên và lưu nó với tên “Simple_Alert. HTML. ”
Sau đây là đoạn mã để xử lý Cảnh báo đơn giản
from selenium import webdriver import time driver = webdriver.Firefox[] driver.maximize_window[] location = "file://" driver.get[location] #Click on the "Alert" button to generate the Simple Alert button = driver.find_element_by_name['alert'] button.click[] #Switch the control to the Alert window obj = driver.switch_to.alert #Retrieve the message on the Alert window msg=obj.text print ["Alert shows following message: "+ msg ] time.sleep[2] #use the accept[] method to accept the alert obj.accept[] print[" Clicked on the OK Button in the Alert Window"] driver.close
Đoạn mã trên mô phỏng một Cảnh báo đơn giản và sau đó chuyển điều khiển sang cửa sổ Cảnh báo. Sau đó, nó xác minh tin nhắn trong cửa sổ Cảnh báo và chấp nhận nó
Xử lý cảnh báo xác nhận
Nó tương tự như Cảnh báo đơn giản. Chỉ là nó có thêm nút 'Hủy' để loại bỏ Cảnh báo nếu cần
Mã HTML sau sẽ tạo Cảnh báo xác nhận
________số 8_______Tôi đã lưu tệp này trên máy tính cục bộ của mình với tên ‘Confirmation_Alert. HTML. ’
Đây là mã để xử lý Cảnh báo xác nhận
from selenium import webdriver import time driver = webdriver.Firefox[] driver.maximize_window[] location = "file://" driver.get[location] #Click on the "Alert" button to generate the Confirmation Alert button = driver.find_element_by_name['alert'] button.click[] #Switch the control to the Alert window obj = driver.switch_to.alert #Retrieve the message on the Alert window message=obj.text print ["Alert shows following message: "+ message ] time.sleep[2] #Section 1 #use the accept[] method to accept the alert obj.accept[] #get the text returned when OK Button is clicked. txt = driver.find_element_by_id['msg'] print[txt.text] time.sleep[2] #refresh the webpage driver.refresh[] # Section 2 # Re-generate the Confirmation Alert button = driver.find_element_by_name['alert'] button.click[] time.sleep[2] #Switch the control to the Alert window obj = driver.switch_to.alert # Dismiss the Alert using obj.dismiss[] #get the text returned when Cancel Button is clicked. txt = driver.find_element_by_id['msg'] print[txt.text] driver.close
Bây giờ hãy tóm tắt các bước được đề cập trong đoạn mã trên
- Trước hết, hãy lưu mã HTML ở trên với tên ‘Confirmation_Alert. HTML' trong máy
- Chúng tôi phải chỉ định đường dẫn trên trong trình giữ chỗ được xác định trong mã Webdriver để xử lý Cảnh báo xác nhận
- Bây giờ trong Phần 1 của mã, chúng tôi nhấp vào nút 'OK' để chấp nhận cảnh báo. Sau đó, chúng tôi đã in thông báo trả về hiển thị trên màn hình
- Ở Đoạn 2 của code, chúng ta mở lại cảnh báo Xác nhận một lần nữa. Lần này, chúng tôi nhấp vào nút 'Hủy' để loại bỏ hộp cảnh báo. Sau đó, chúng tôi đã in thông báo trả về hiển thị trên màn hình
Xử lý cảnh báo kịp thời
Nó cũng tương tự như hai cảnh báo đầu tiên. Sự khác biệt duy nhất là Prompt cho phép chúng tôi nhập một số văn bản thông qua nó
Sau đây là mã HTML sẽ tạo cảnh báo Nhắc
Employee Login
Continuefunction myFunction[] { var login = prompt["Please re-enter your name", "xxxxxx"]; if [login != null] { document.getElementById["msg"].innerHTML = "Welcome " + login + "!! How can I help you?"; alert["You have logged in successfully !!"] } }
Bạn cần lưu tệp này dưới dạng 'Prompt_Alert. HTML. ’ Nó cũng đơn giản để xử lý cảnh báo này. Sau khi chuyển focus sang alert, chúng ta có thể nhập text vào đó bằng phương thức send_keys[]
Đây là mã hoàn chỉnh cho cùng
from selenium import webdriver import time driver = webdriver.Firefox[] driver.maximize_window[] location = "file://" driver.get[location] #Click on the "employeeLogin" button to generate the Prompt Alert button = driver.find_element_by_name['continue'] button.click[] #Switch the control to the Alert window obj = driver.switch_to.alert time.sleep[2] #Enter text into the Alert using send_keys[] obj.send_keys['Meenakshi'] time.sleep[2] #use the accept[] method to accept the alert obj.accept[] #Retrieve the message on the Alert window message=obj.text print ["Alert shows following message: "+ message ] time.sleep[2] obj.accept[] #get the text returned when OK Button is clicked. txt = driver.find_element_by_id['msg'] print[txt.text] driver.close
Hãy xem mã một cách chi tiết
- Trước hết, lưu mã HTML để tạo Prompt Alert với tên ‘Prompt_Alert. HTML' trên máy của bạn
- Bạn phải cung cấp đường dẫn của tệp này trong trình giữ chỗ được cung cấp trong mã. Bạn phải sử dụng dấu gạch chéo lên trong khi chỉ định URL của trang web. Nếu không, nó có thể không hoạt động chính xác
Ví dụ, ở đây tôi phải cung cấp đường dẫn của tệp là
location = "file://C:\Users/Automation-Dev/Desktop/Meenakshi/Selenium Python/Prompt_Alert.HTML
- After you move the control to the alert using , use the “send_keys[]” method to enter the text in the alert window.
Tóm tắt nhanh – Xử lý hộp thông báo & hộp bật lên
Điều quan trọng là phải hiểu cách xử lý các hộp cảnh báo và cửa sổ bật lên bằng Selenium Python. Bạn có thể áp dụng các kỹ thuật trên để giải quyết các trường hợp sử dụng thời gian thực trong các dự án của mình
Để biết thêm thông tin cập nhật về hướng dẫn Selenium Python, hãy theo dõi các tài khoản mạng xã hội [Facebook/Twitter] của chúng tôi