Xử lý Selenium Alert và Popup Window trong Selenium

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xử lý Popup Window trong Selenium và các loại Alert khác nhau được tìm thấy trong Selenium  ứng dụng web . Chúng tôi cũng sẽ xem cách xử lý Alert trong Selenium WebDriver và tìm hiểu cách chúng tôi chấp nhận và từ chối Alert tùy thuộc vào loại Alert.

Video Xử lý Selenium Alert và Popup Window trong Selenium

https://youtu.be/j3zB5nl-PqA

Thông báo trong Selenium là gì?

Một Alert trong Selenium là một hộp thông báo nhỏ xuất hiện trên coden 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 Alert.

Dưới đây là một số Alert trong các loại Selenium:

1) Alert đơn giản

Lớp Alert đơn giản trong Selenium hiển thị một số thông tin hoặc Alert trên coden hình.

Xử lý Selenium Alert và Popup Window trong Selenium

2) Alert nhắc nhở.

Thông báo nhắc nhở này yêu cầu một số đầu vào từ người dùng và trình duyệt web Selenium có thể nhập văn bản bằng cách sử dụng các phím gửi (“đầu vào….”).

3) Alert xác nhận.

Alert xác nhận này yêu cầu quyền để thực hiện một số loại hoạt động.

Cách xử lý Alert trong Selenium WebDriver

Giao diện Alert 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) void dismiss() // To click on the ‘Cancel’ button of the alert.

driver.switchTo().alert().dismiss();

2) void accept() // To click on the ‘OK’ button of the alert.

driver.switchTo().alert().accept();

3) String getText() // To capture the alert message.

driver.switchTo().alert().getText();

4) void sendKeys(String stringToSend) // To send some data to alert box.

driver.switchTo().alert().sendKeys(“Text”);

Bạn có thể thấy một số phương pháp Alert được hiển thị như trong coden hình dưới đây do Eclipse đề xuất.

Chúng ta có thể dễ dàng chuyển sang Alert từ window chính bằng cách sử dụng phương thức .switchTo () của Selenium .

Bây giờ chúng tôi tự động hóa tình huống dưới đây.

Trong trường hợp này, chúng tôi sẽ sử dụng trang demo Guru99 để minh họa việc xử lý Selenium Alert.

Bước 1) Khởi chạy trình duyệt web và mở trang web ” http://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 Alert.

Xử lý Alert trong Selenium Webdriver bằng cách sử dụng quy trình trên

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(“http://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();

    }

}

output:

Khi bạn thực thi đoạn code trên, nó sẽ khởi chạy trang web. Cố gắng xóa ID khách hàng bằng cách xử lý Alert xác nhận hiển thị trên coden hình và do đó xóa id khách hàng khỏi ứng dụng.

Cách xử lý Popup Window Selenium bằng cách sử dụng Webdriver

Trong tự động hóa, khi chúng ta có nhiều window trong bất kỳ ứng dụng web nào, hoạt động có thể cần chuyển điều khiển giữa một số window từ window này sang window khác để hoàn thành hoạt động. Sau khi hoàn thành thao tác, nó phải quay trở lại window chính tức là parent window trong Selenium. Chúng ta sẽ thấy điều này xa hơn trong bài báo với một ví dụ.

Trong trình điều khiển web Selenium có các phương thức code chúng ta có thể xử lý nhiều window.

Driver.getWindowHandles ();

Để xử lý tất cả các window đã mở bằng 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 window từ window này sang window khác trong ứng dụng web. Kiểu trả về của nó là Iterator<String>.

Driver.getWindowHandle ();

Khi trang web mở ra, chúng ta cần xử lý window chính bằng driver.getWindowHandle () . Thao tác này sẽ xử lý window hiện tại nhận dạng duy nhất nó trong phiên bản trình điều khiển này. Kiểu trả về của nó là String.

Để xử lý Window trong Selenium, chúng ta sẽ làm theo các bước sau:

Bây giờ, chúng ta sẽ tự động hóa tình huống dưới đây để xem cách xử lý nhiều window bằng Selenium Webdriver.

Trong trường hợp này, chúng tôi sẽ sử dụng trang web demo “Guru99” để minh họa việc xử lý window.

Bước 1) Khởi chạy trang web.

Khởi chạy trình duyệt và mở trang web ” http://demo.guru99.com/popup.php

Bước 2) Nhấp vào liên kết “Nhấp vào đây”.

Khi người dùng nhấp vào liên kết “Nhấp vào đây”, Child window mới sẽ mở ra.

Bước 3) Child window mới mở ra.

Một window mới mở ra, yêu cầu người dùng nhập id ecodeil và gửi trang.

Bước 4) Nhập ID ecodeil của bạn và gửi.

Bước 5) Hiển thị thông tin đăng nhập khi gửi trang.

Khi bạn thực thi code, bạn sẽ thấy Child window đang mở trong tab mới.

  1. Đóng Child window code thông tin đăng nhập được hiển thị.
  1. Chuyển sang parent window.

Xử lý nhiều window trong Selenium webdriver bằng cách sử dụng quy trình trên.

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(“http://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);

    }

}

output:

Khi bạn thực thi đoạn code 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 Child window trong một tab mới. Bạn có thể đóng Child window và chuyển sang parent window sau khi thao tác hoàn tất. Do đó xử lý nhiều hơn một window trong ứng dụng.

Xử lý nhiều window trong Selenium

Sự kết luận:

  • Chúng tôi đã xác định các loại Alert và hiển thị chúng bằng ảnh chụp code màn hình.
  • Đã chứng minh việc xử lý Alert với Selenium WebDriver bằng cách sử dụng quy trình cụ thể.
  • Xử lý nhiều window với Selenium WebDriver bằng cách sử dụng quy trình cụ thể.
Back to top button