Làm thế nào để xử lý Selenium Cảnh báo và cửa sổ bật lên?
Thông báo trong đó là gì Selenium?
An 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 cụ thể hoặc lỗi, yêu cầu quyền thực hiện một số tác vụ nhất định và 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 ứng dụng web Kiểm tra. 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úng tôi chấp nhận và từ chối cảnh báo tùy thuộc vào loại cảnh báo.
Các loại cảnh báo trong Selenium
1) Simple Alert
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.
2) Prompt Alert
T Prompt Alert hỏi một số thông tin đầu vào từ người dùng và Selenium webdriver có thể nhập văn bản bằng sendkeys(” input…. “).
3) Confirmation Alert
Cảnh báo xác nhận này yêu cầu cấp quyền thực hiện một số loại thao tác.
Cách xử lý Alert trong Selenium webdriver
Giao diện cảnh báo cung cấp một số phương pháp dưới đây được sử dụng rộng rãi trong Selenium webdriver.
1) bỏ qua() // Để nhấp vào nút 'Hủy' của cảnh báo.
driver.switchTo().alert().dismiss();
2) vô hiệu chấp nhận()// Để nhấp vào nút 'OK' của cảnh báo.
driver.switchTo().alert().accept();
3) Chuỗi getText() // Để ghi lại thông báo cảnh báo.
driver.switchTo().alert().getText();
4) void sendKeys(Chuỗi stringToSend) // Để gửi một số dữ liệu đến hộp cảnh báo.
driver.switchTo().alert().sendKeys("Text");
Bạn có thể thấy một số phương thức Cảnh báo được hiển thị như trong màn hình bên dưới được đề xuất bởi Eclipse.
Chúng ta có thể dễ dàng chuyển sang cảnh báo từ cửa sổ chính bằng cách sử dụng Selenium'S .chuyển sang() phương pháp.
Bây giờ chúng tôi tự động hóa kịch bản được đưa ra dưới đây.
Trong kịch bản này, chúng tôi sẽ sử dụng trang demo Guru99 để minh họa Selenium Xử lý cảnh báo.
Bước 1) Khởi chạy trình duyệt web và mở trang web https://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("https://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 mã trên, nó sẽ khởi chạy trang web. Hãy thử xóa ID khách hàng bằng cách xử lý cảnh báo xác nhận hiển thị trên màn hình và do đó xóa ID khách hàng khỏi ứng dụng.
Cách xử lý cửa sổ Pop-up bằng cách sử dụng Selenium webdriver
Trong tự động hóa, khi chúng ta có nhiều cửa sổ trong bất kỳ ứng dụng web nào, hoạt động có thể cần phải chuyển đổi quyền điều khiển giữa nhiều cửa sổ từ cửa sổ này sang cửa sổ khác để hoàn tất thao tác. Sau khi hoàn tất thao tác, nó phải quay lại cửa sổ chính tức là cửa sổ cha trong Selenium. Chúng ta sẽ thấy điều này sâu hơn trong bài viết với một ví dụ.
In Selenium Trình điều khiển web có những phương pháp mà chúng ta có thể xử lý nhiều cửa sổ.
Driver.getWindowHandles();
Để xử lý tất cả các cửa sổ được mở bởi trình điều khiển web, chúng ta có thể sử dụng “Driver.getWindowHandles()” và sau đó chúng ta có thể chuyển đổi cửa sổ từ cửa sổ này sang cửa sổ khác trong ứng dụng web. Kiểu trả về của nó là Iterator .
Driver.getWindowHandle();
Khi trang web mở ra, chúng ta cần xử lý cửa sổ chính bằng cách driver.getWindowHandle(). Thao tác này sẽ xử lý cửa sổ hiện tại xác định duy nhất cửa sổ đó trong phiên bản trình điều khiển này. Kiểu trả về của nó là String.
Để xử lý cửa sổ trong Selenium, chúng ta sẽ thực hiện theo các bước dưới đây:
Bây giờ, chúng ta sẽ tự động hóa kịch bản được đưa ra bên dưới để xem cách xử lý nhiều cửa sổ bằng cách sử dụng Selenium Webdriver.
Trong trường hợp này, chúng tôi sẽ sử dụng trang demo “Guru99” để minh họa cách xử lý cửa sổ.
Bước 1) Khởi chạy trang web.
Khởi chạy trình duyệt và mở trang web https://demo.guru99.com/popup.php
Bước 2) Bấm vào liên kết “Bấm vào đây”.
Khi người dùng nhấp vào liên kết “Click Here”, cửa sổ con mới sẽ mở ra.
Bước 3) Cửa sổ con mới mở ra.
Một cửa sổ mới mở ra, yêu cầu người dùng nhập ID email và gửi trang.
Bước 4) Nhập ID email của bạn và gửi.
Bước 5) Hiển thị Thông tin xác thực truy cập khi gửi trang.
Khi thực thi mã, bạn sẽ thấy cửa sổ con đang mở trong tab mới.
- Đóng cửa sổ Con nơi thông tin xác thực được hiển thị.
- Chuyển sang cửa sổ cha mẹ.
Cách xử lý nhiều Windows in Selenium
import java.util.Iterator; import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class WindowHandle_Demo { public static void main(String[] args) throws InterruptedException { WebDriver driver=new FirefoxDriver(); //Launching the site. driver.get("https://demo.guru99.com/popup.php"); driver.manage().window().maximize(); driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click(); String MainWindow=driver.getWindowHandle(); // To handle all new opened window. Set<String> s1=driver.getWindowHandles(); Iterator<String> i1=s1.iterator(); while(i1.hasNext()) { String ChildWindow=i1.next(); if(!MainWindow.equalsIgnoreCase(ChildWindow)) { // Switching to Child window driver.switchTo().window(ChildWindow); driver.findElement(By.name("emailid")) .sendKeys("gaurav.3n@gmail.com"); driver.findElement(By.name("btnLogin")).click(); // Closing the Child Window. driver.close(); } } // Switching to Parent window i.e Main Window. driver.switchTo().window(MainWindow); } }
Đầ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 một 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.
Kết luận
- Chúng tôi đã xác định các loại cảnh báo và hiển thị chúng bằng ảnh chụp màn hình.
- Chứng minh việc xử lý Cảnh báo với Selenium WebDriver sử dụng kịch bản cụ thể.
- Xử lý nhiều cửa sổ với Selenium WebDriver sử dụng kịch bản cụ thể.