Cảnh báo Selenium & Xử lý cửa sổ bật lên: Làm thế nào để xử lý?

Mục lục:

Anonim

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 Thử nghiệm ứng dụng web. Chúng tôi 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.

Trong hướng dẫn này, bạn sẽ học-

  • Cảnh báo là gì?
  • Cách xử lý Cảnh báo trong Selenium WebDriver
  • Cách xử lý cửa sổ Selenium Popup bằng Webdriver

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 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ụ và nó cũng cung cấp các thông báo cảnh báo.

Dưới đây là một số cảnh báo trong các loại 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.

2) Cảnh báo 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 phím gửi ("đầu vào

…. ").

3) Cảnh báo xác nhận.

Cảnh báo 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ý Cảnh báo 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) void allow () // Để nhấp vào nút 'Hủy bỏ' của cảnh báo.

driver.switchTo (). alert (). Bỏ qua ();

2) void accept () // Để nhấp vào nút 'OK' của cảnh báo.

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

3) Chuỗi getText () // Để nắm bắt thông báo cảnh báo.

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

4) void sendKeys (String stringToSend) // Để gửi một số dữ liệu đến hộp cảnh báo.

driver.switchTo (). alert (). sendKeys ("Văn bản");

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

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 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 cảnh báo.

Xử lý cảnh báo trong Selenium Webdriver bằng cách sử dụng kịch bản trên

nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;nhập org.openqa.selenium.NoAlertPresentException;nhập org.openqa.selenium.Alert;lớp công khai AlertDemo {public static void main (String [] args) ném NoAlertPresentException, InterruptException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Trình điều khiển WebDriver = mới ChromeDriver ();// Xử lý thông báo cảnh báodriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("submit")). submit ();// Chuyển sang Cảnh báoCảnh báo cảnh báo = driver.switchTo (). Alert ();// Chụp thông báo cảnh báo.String alertMessage = driver.switchTo (). Alert (). GetText ();// Hiển thị thông báo cảnh báoSystem.out.println (alertMessage);Thread.sleep (5000);// Chấp nhận cảnh báoalert.accept ();}}

Đầu ra:

Khi bạn thực thi đoạn mã 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ý 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ổ bật lên Selenium bằng cách sử dụng 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 chuyển điều khiển giữa một số cửa sổ từ cửa sổ này sang cửa sổ 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 cửa sổ chính tức là cửa sổ mẹ 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 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ổ đã 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 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 driver.getWindowHandle () . Thao tác này sẽ xử lý cửa sổ 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à Chuỗi.

Để 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 cửa sổ 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ý cửa sổ.

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", 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 đăng nhập khi gửi trang.

Khi bạn thực thi mã, bạn sẽ thấy cửa sổ con đang mở trong tab mới.

  1. Đóng cửa sổ Con mà thông tin đăng nhập được hiển thị.
  1. Chuyển sang cửa sổ mẹ.

Xử lý nhiều cửa sổ trong Selenium webdriver bằng cách sử dụng kịch bản trên.

nhập java.util.Iterator;nhập java.util.Set;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;lớp công khai WindowHandle_Demo {public static void main (String [] args) ném InterruptException {Trình điều khiển WebDriver = new FirefoxDriver ();// Khởi chạy trang web.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). Maxim ();driver.findElement (By.xpath ("// * [chứa (@ href, 'popup.php')]")). click ();String MainWindow = driver.getWindowHandle ();// Để xử lý tất cả cửa sổ mới mở.Đặt  s1 = driver.getWindowHandles ();Lặp lại  i1 = s1.iterator ();while (i1.hasNext ()){String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Chuyển sang cửa sổ Concửa sổ driver.switchTo (). (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Địa chỉ email này đang được bảo vệ khỏi spam bots. Bạn cần bật Javascript để xem nó.");driver.findElement (By.name ("btnLogin")). click ();// Đóng cửa sổ con.trình điều khiển.close ();}}// Chuyển sang cửa sổ Parent tức là Cửa sổ chính.cửa sổ driver.switchTo (). (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ổ mẹ 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.

Xử lý nhiều cửa sổ trong Selenium

Phần 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 bằng cách sử dụng kịch bản cụ thể.
  • Xử lý nhiều cửa sổ với Selenium WebDriver bằng cách sử dụng kịch bản cụ thể.