Topic Học Kiểm thử phần mềm tự động sẽ giới thiệu về Selenium Webdriver 

Bài 4 -Selenium WebDriver Switch Window Commands

Một số ứng dụng web có nhiều frames   hoặc  nhiều cưả sổ (multiple windows ).
Vậy làm sao để Selenium Webdriver phân biệt được chúng.?
Selenium WebDriver gán id ccho mỗi cửa sổ ngay sau khi các đối tượng WebDriver được khởi tạo. Id  này được gọi là cửa sổ xử lý.

Selenium sử dụng id duy nhất này để chuyển đổi kiểm soát trong nhiều cửa sổ. Trong thuật ngữ đơn giản, mỗi cửa sổ độc đáo có một ID duy nhất, do đó Selenium có thể phân biệt khi nó được chuyển sang điều khiển từ một cửa sổ khác.
Sau đây là một số lệnh

1.GetWindowHandle Command

Lấy -nhận diện id cửa sổ xử lý (window handle)của cửa sổ hiện hành.

String  handle= driver.getWindowHandle();//Return a string of alphanumeric window handle

2. GetWindowHandles Command

Lấy  tất cả các cửa sổ xử lý (window handle)của cửa sổ hiện hành

Set<String> handle= driver.getWindowHandles();//Return a set of window handle

3.SwitchTo Window Command

Di chuyển giữa các cửa sổ khác nhau thông qua tên của chúng . bằng cách sử dụng   “switchTo” method

driver.switchTo().window("windowName");

Ngoài ra,  có thể đến cửa sổ khác bằng cách sử dụng “switchTo().window()” method

Nó có thể lặp qua mỗi cửa sổ khác đang  mở  giống  việc ta chuyển t từ cửa sổ này sang cửa sổ khác vậy

for (String handle : driver.getWindowHandles()) {
   driver.switchTo().window(handle);}


Hoặc lặp lại (mở lại) tất cả các cửa sổ

driver.findElement(By.id(“id of the link which opens new window”)).click();
//Chờ đến khi 2 cửa sổ không được mở
waitForNumberofWindowsToEqual(2);// phương thức đợi mở
Set handles = driver.getWindowHandles();
firstWinHandle = driver.getWindowHandle(); handles.remove(firstWinHandle);
String winHandle=handles.iterator().next();
if (winHandle!=firstWinHandle){
/ Nhận diện cửa sổ xử lý thứ 2 ( window handle)
secondWinHandle=winHandle; //Gán cửa sổ thứ 2 để xử lý
//Switch control to new window
driver.switchTo().window(secondWinHandle);


4.SwitchTo Frame Command

Di chuyển giữa các Frame

driver.switchTo().frame("frameName");

5.SwitchTo PopUp Command

WebDriver hỗ trợ di chuyển giữa các Popup  bằng cách sử dụng phương pthức "switchTo". Sau khi  một cửa sổ bật lên, có thể truy cập vào các alert  và nó sẽ trả về đối tượng alert  hiện đang mở. có thể lựa chọn  accept, dismiss, read …. hoặc bất kỳ  trên Popup  

Alert alert = driver.switchTo().alert();

Sau đây là bài tập thực hành cho Bài 4 trong topic " Học kiểm thử phần mềm tự động" 

1) Launch new Browser
2) Open URL “http://kiemthuphanmemvvn.blogspot.com/2015/03/hoc-kiem-thu-tu-dong.html”
3) Get Window name (Use GetWindowHandle command)

package practice HocKiemthutudong;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class PracticeSwitchWindow {

     public static WebDriver driver;
     public static void main(String[] args) {

         // Create a new instance of the Firefox driver
         driver = new FirefoxDriver();

         // Put an Implicit wait, this means that any search for elements on the page could take the time the implicit wait is set for before throwing exception
         driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

         // Launch the URL
         driver.get("http://kiemthuphanmemvvn.blogspot.com/2015/03/hoc-kiem-thu-tu-dong.html");

         // Store and Print the name of the First window on the console
         String handle= driver.getWindowHandle();
         System.out.println(handle);

         // Close Original window
         driver.quit();

 }

}

Chọn Run và xem kết quả 
-----------

Topic Học kiểm thử phần mềm tự động 

 Bài 4 -Selenium WebDriver Switch Window Commands







Xem nhiều nhất

Zui Zui

Nếu bạn không đủ mạnh -Đừng cố đi ngược đám đông