Cách xử lý cảnh báo và cửa sổ bật lên trong Selenium?
⚡ Tóm tắt thông minh
Thông báo và cửa sổ bật lên trong Selenium đang JavaCác hộp thoại kịch bản và cửa sổ con chặn luồng tự động hóa. Bài viết này giải thích cách xác định các cảnh báo đơn giản, nhắc nhở và xác nhận, chuyển đổi giữa chúng bằng WebDriver và quản lý nhiều cửa sổ bằng cách sử dụng getWindowHandles().

Thông báo trong Selenium?
An Cảnh báo trong Selenium là một nhỏ JavaHộp thoại kịch bản 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ó có thể xác nhận một hành động cụ thể, yêu cầu quyền thực hiện một thao tác hoặc hiển thị một thông báo cảnh báo.
Trong hướng dẫn này, bạn sẽ học 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 thử nghiệmChúng ta cũng sẽ xem cách xử lý cảnh báo trong... Selenium WebDriver và cách chấp nhận hoặc từ chối nó tùy thuộc vào loại cảnh báo.
Các loại cảnh báo trong Selenium
JavaĐoạn mã hiển thị ba hộp thoại cảnh báo mà... Selenium Phải xử lý theo cách khác.
1) Simple Alert
Thông báo đơn giản hiển thị thông tin hoặc cảnh báo trên màn hình. Người dùng chỉ có thể xác nhận bằng cách nhấp chuột. OK.
2) Prompt Alert
Thông báo nhắc nhở yêu cầu người dùng nhập thông tin. Selenium WebDriver có thể nhập dữ liệu vào đó bằng cách sử dụng sendKeys("input...").
3) Confirmation Alert
Thông báo xác nhận yêu cầu người dùng chấp thuận hoặc hủy bỏ một thao tác. Nó hiển thị cả hai khía cạnh. OK và Hủy bỏ nút.
Cách xử lý cảnh báo trong Selenium webdriver
Alert giao diện trong Selenium webdriver Trình bày bốn phương pháp bao quát mọi tương tác cảnh báo.
- bỏ qua() — nhấp chuột vào Hủy bỏ .
driver.switchTo().alert().dismiss();
- vô hiệu chấp nhận() — nhấp chuột vào OK .
driver.switchTo().alert().accept();
- Chuỗi getText() — Ghi lại thông báo cảnh báo.
driver.switchTo().alert().getText();
- void sendKeys(Chuỗi stringToSend) — Nhập văn bản vào ô nhắc nhở.
driver.switchTo().alert().sendKeys("Text");
Eclipse Tính năng tự động hoàn thành hiển thị các phương thức cảnh báo có sẵn sau khi nhậpping alert. trên dòng trình soạn thảo. Chuyển đổi từ cửa sổ chính sang cửa sổ cảnh báo bất cứ lúc nào bằng cách sử dụng Selenium'S .chuyển sang() phương pháp.
Ví dụ minh họa: Xóa bản demo khách hàng
Chúng ta hãy tự động hóa kịch bản sau. Chúng ta sẽ sử dụng... GuruTrang web demo 99 để minh họa Selenium Xử lý cảnh báo.
Bước 1) Khởi động trình duyệt và mở https://demo.guru99.com/test/delete_customer.php.
Bước 2) Nhập bất kỳ Mã khách hàng nào.
Bước 3) Nhấn vào Gửi .
Bước 4) Chấp nhận hoặc bỏ qua thông báo xác nhận.
Selenium Java Code: Xử lý Confirmation Alert
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 {
// Selenium 4 ships Selenium Manager, so an explicit driver path is no longer required.
WebDriver driver = new ChromeDriver();
// Open the Delete Customer demo page
driver.get("https://demo.guru99.com/test/delete_customer.php");
driver.findElement(By.name("cusid")).sendKeys("53920");
driver.findElement(By.name("submit")).submit();
// Switch to the confirmation alert
Alert alert = driver.switchTo().alert();
// Capture the alert message
String alertMessage = alert.getText();
System.out.println(alertMessage);
Thread.sleep(5000);
// Accept the alert
alert.accept();
driver.quit();
}
}
Đầu ra: Trình duyệt mở trang Xóa Khách hàng, nhập ID khách hàng, chấp nhận thông báo xác nhận và xóa bản ghi khỏi ứng dụng demo.
Cách xử lý cửa sổ bật lên Windows in Selenium webdriver
Khi quá trình tự động hóa phải hoạt động trên nhiều cửa sổ trình duyệt, bài kiểm tra phải chuyển tiêu điểm giữa các cửa sổ đó và quay lại cửa sổ chính sau mỗi thao tác. Selenium WebDriver cung cấp hai phương thức giúp thực hiện điều này.
driver.getWindowHandles()
Trả về một Set<String> của mọi tay cầm cửa sổ đang mở. Lặp lại trên tập hợp để chuyển từ cửa sổ chính sang bất kỳ cửa sổ con nào trong ứng dụng.
driver.getWindowHandle()
Trả về một String Với mã định danh duy nhất của cửa sổ hiện tại. Hãy chụp lại mã này trước khi mở bất kỳ cửa sổ con nào để bạn có thể quay lại cửa sổ cha sau này.
Hãy làm theo các bước sau để minh họa cách xử lý cửa sổ. GuruBản demo 99 cửa sổ bật lên.
Ví dụ minh họa: Chuyển đổi cửa sổ
Bước 1) Khởi động trình duyệt và mở https://demo.guru99.com/popup.php.
Bước 2) Nhấn vào Bấm vào đây Liên kết. Một cửa sổ con mới sẽ mở ra.
Bước 3) Cửa sổ con sẽ yêu cầu người dùng nhập địa chỉ email và gửi đi.
Bước 4) Nhập địa chỉ email và gửi.
Bước 5) Trang này hiển thị thông tin đăng nhập được trả về từ bản demo.
Sau khi thông tin đăng nhập được hiển thị:
- Đóng cửa sổ con.
- Chuyển tiêu điểm trở lại cửa sổ chính.
Selenium Java Code: Xử lý nhiều Windows
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 {
// Selenium 4 auto-resolves the browser driver via Selenium Manager
WebDriver driver = new FirefoxDriver();
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();
// Capture every open window handle
Set<String> allWindows = driver.getWindowHandles();
Iterator<String> iterator = allWindows.iterator();
while (iterator.hasNext()) {
String childWindow = iterator.next();
if (!mainWindow.equalsIgnoreCase(childWindow)) {
// Switch to the child window
driver.switchTo().window(childWindow);
driver.findElement(By.name("emailid")).sendKeys("gaurav.3n@gmail.com");
driver.findElement(By.name("btnLogin")).click();
// Close the child window
driver.close();
}
}
// Return focus to the main window
driver.switchTo().window(mainWindow);
driver.quit();
}
}
Đầu ra: Trang web được ra mắt, Nhấp vào đây Liên kết này sẽ mở một tab con. Selenium Nhập địa chỉ email và gửi đi, đóng cửa sổ con, rồi quay lại cửa sổ chính.
Kết luận
- Đã định nghĩa ba Selenium Các loại cảnh báo — đơn giản, nhắc nhở và xác nhận — kèm theo ảnh chụp màn hình cho mỗi loại.
- Đã chứng minh khả năng xử lý cảnh báo bằng WebDriver.
AlertGiao diện sử dụng kịch bản xóa khách hàng đang hoạt động. - Quản lý nhiều cửa sổ trình duyệt bằng cách bắt giữ các handle.
getWindowHandle()vàgetWindowHandles()và chuyển đổi qua lại giữa chúng.















