SF

""

Alert với Selenium Webdriver

 

Alert với Selenium Webdriver

Ta có thể phân loại một số popup như sau:

1. Alert bình thường 

Alert này cung cấp một thông tin nào đó cho người dùng biết, người dùng sau khi đọc thông tin được cung cấp thường sẽ nhấn OK để xác nhận thông tin, khi đó alert sẽ đóng lại:

alert_1

2. Alert Prompt 
Một loại confirm mà yêu cầu người dùng input một thông tin nào đó, và có thêm button là sau khi đã nhập thông tin vào alert có thể nhấn OK hoặc Cancel để đóng popup:

alert_Prompt

3. Alert confirmation
Đơn giản hơn loại thứ hai và gần giống loại đầu tiên, khác cái là nó có hai lựa chọn, :v nên ta có thể chọn một trong hai lựa chọn này là OK hoặc Cancel và không phải input thêm thông tin nào:

alert_confirm

4. Other alert
Loại thứ 4 này thì ít gặp hơn, loại này kiểu như hiện lên 1 alert, khi click vào một button nào đó trong alert sẽ lại tiếp tục hiển thị thêm 1 alert khác đè lên trên alert đã hiển thị trước đó. Sau đấy việc của ta là nhấn xác nhận cho alert thứ hai và rồi lại quay lại cái alert đầu tiên để xử lý.

alert

Selenium webdriver có cung cấp method .switchTo() để hỗ trợ chúng ta có thể dễ dàng switch từ màn hình chính của ứng dụng sang cái Alert để thực hiện thao tác trong alert đó. Bên cạnh đó, ta cũng được cung cấp một số method trong Selenium webdriver sử dụng để làm việc với alert như:

1. dissmiss() – Để thực hiện click vào button Cancel trong alert

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

2. accept() – Để thực hiện click OK, hoặc có trường hợp là DONE hay YES cũng đều dùng được.

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

3. getText() – Để lấy ra nội dung message trong alert

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

4. sendKey(String text) – Để truyền dữ liệu vào arlert

driver.switchTo().alert().sendKeys("Text");

Trên đây là một vài nội dung cơ bản bạn cần nắm được khi làm việc với alert. Phần tiếp theo mình sẽ thực hiện xây dựng một kịch bản test cho một alert để các bạn có thể hình dung cụ thể hơn về việc selenium xử lý như thế nào nhé!

Ta có kịch bản test như sau:

1. Open browser và truy cập vào trang  http://demo.guru99.com/selenium/delete_customer.php

2. Click vào 1 button, trang web hiển thị một alert

3. Click close hoặc OK để đóng alert

Run code:

package basic;
import org.openqa.selenium.By;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
public class Alert {
 public static void main(String[] args) { 
  System.setProperty("webdriver.gecko.driver", "E:\\Program\\Firefox\\geckodriver.exe"); 
  FirefoxOptions options = new FirefoxOptions(); 
  options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); 
  FirefoxDriver driver = new FirefoxDriver(options); 
 
  //Mở đường dẫn ứng dụng
  driver.get("http://demo.guru99.com/selenium/delete_customer.php"); 
  
  //Thực hiện click button để hiển thị lên alert
  driver.findElement(By.name("submit")).click(); 
  
  //Thực hiện nhấn nút cancel >> đóng alert
  driver.switchTo().alert().dismiss(); 

  // Thực hiện click lại vào button để hiển thị alert
  driver.findElement(By.name("submit")).click(); 
  
  //Lấy ra nội dung alert
  driver.switchTo().alert().getText(); 

  //Thực hiện nhấn nút OK
  driver.switchTo().alert().accept(); 
}
}