Bài 4: Kiểm chứng khi so sánh 2 sản phẩm - popup trong Selenium

Ở bài này, chúng ta sẽ viết code cho Testcase verify khi mà so sánh 2 sản phẩm.


Hướng giải quyết như sau:khi mà click vào textlink Mobile:
  1. Lấy title của 2 sản phẩm sony và iphone để khi mà vào popup Compare, thì sẽ so sánh với  tiêu đề 2 sản phẩm trong đó.
  2. Ở poup Compare, thì có tiêu đề mong muốn, và so sánh với tiêu đề hiện tại, nếu đúng thì pass


package demo_bai4;
import org.testng.annotations.AfterTest;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import static org.testng.AssertJUnit.assertEquals;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Bai4{
   private WebDriver driver;
   private String baseUrl; 
   
 @BeforeTest
 public void setUp() throws Exception {
  System.setProperty("webdriver.chrome.driver","D:\\NVH\\selenium\\gecko\\chromedriver.exe");
     driver = new ChromeDriver();
     baseUrl = "http://live.guru99.com/";
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
   }
   
   @Test
   public void testTC4() throws Exception {
  
  // 1. mở trang http://live.guru99.com
     driver.get(baseUrl); 
     
     // 2. Click  Mobile menu
     driver.findElement(By.linkText("MOBILE")).click();
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
     
     // 3. Trong trang mobile product , click  Add To Compare cho Sony Xperia và Iphone 
     
     //ta lấy 2 title của 2 điện thoại để so sánh khi mà có popup show lên
     // Click Add To Compare cho sony
     driver.findElement(By.xpath("//*[@id=\"top\"]/body/div/div/div[2]/div/div[2]/div[1]/div[3]/ul/li[1]/div/div[3]/ul/li[2]/a")).click();
    // lấy title của sony để so sánh với trang compare. Kết quả là lấy ra "SONY XPERIA"
     String mainMobile1 = driver.findElement(By.xpath("//h2/a[@title='Sony Xperia']")).getText();
     System.out.println("mainMobile1 = "+mainMobile1);
     
     // // Click Add To Compare cho Iphone
     driver.findElement(By.xpath("//*[@id=\"top\"]/body/div/div/div[2]/div/div[2]/div[1]/div[3]/ul/li[2]/div/div[3]/ul/li[2]/a")).click();   
     // lấy title của sony để so sánh với trang compare. Kết quả là lấy ra "IPHONE"
     String mainMobile2 = driver.findElement(By.xpath("//h2/a[@title='IPhone']")).getText();
     System.out.println("mainMobile2 = "+mainMobile2);
    
     
     // 4. click vào nút COMPARE, 1 popup đc mở ra
     driver.findElement(By.xpath("//button[@title='Compare']")).click();     
     
     
     // Chuyển qua popup mới
     for (String handle : driver.getWindowHandles()) {
      driver.switchTo().window(handle);
      }
     
     // 5. check lại titel của popup và lấy tiêu đề của sản phẩm, để so sánh với trang main
     String strHead = ("COMPARE PRODUCTS");
     String compHead = driver.findElement(By.xpath(".//*[@id='top']/body/div[1]/div[1]/h1")).getText(); 
     System.out.println("compHead = "+compHead);
     String popupMobile1 = driver.findElement(By.xpath("//h2/a[@title='Sony Xperia']")).getText();  // lấy được "IPHONE"
     String popupMobile2 = driver.findElement(By.xpath("//h2/a[@title='IPhone']")).getText();  // lấy được "SONY XPERIA" 
     System.out.println("popupMobile1 = "+popupMobile1);
     System.out.println("popupMobile2 = "+popupMobile2);
     
     // kiểm tra title của popup xem có chính xác chưa
     try {      
      assertEquals(strHead, compHead);
      } catch (Exception e) {
       e.printStackTrace();      
      } 
     // Kiểm tra title của 2 điện thoại, trong trang main và poup, ở đây là Sony
     try {      
      assertEquals(mainMobile1, popupMobile1);
      } catch (Exception e) {
       e.printStackTrace();      
      } 
     // Kiểm tra title của 2 điện thoại, trong trang main và poup, ở đây là Iphone
     try {      
      assertEquals(mainMobile2, popupMobile2);
      } catch (Exception e) {
       e.printStackTrace();      
      } 
          
     // 6. Close cửa sổ popup
     driver.findElement(By.xpath("//button[@title='Close Window']")).click();
     
     // Chuyển về cửa sổ mới (cửa sổ chính)
     for (String handle : driver.getWindowHandles()) {
     driver.switchTo().window(handle);
     }     
   }
 
 @AfterTest
 public void tearDown() throws Exception {
  driver.close();
  }
 
 }


0 comments:

Post a Comment