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 CommandsMộ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ả 
-----------
 
 
 
 
 
 
 
 
 
 
 
.jpg)