Khi mở bất kỳ một trang website nào thì chúng ta đều để ý tiêu đề của trang, cụ thể là như thế nào, xem nó đã đúng nội dung hay chưa. Chính vì vậy việc xác minh tiêu đề của trang website là rất quan trọng. Vậy làm thế nào để thực hiện việc kiểm thử tự động tiêu đề trang website. Trong bài viết này mình sẽ đi giới thiệu với các bạn về cách sử dụng selenium webdriver cho việc kiểm thử tiêu đề trang.

  1. Sử dụng phương thức getTitle()

Selenium webdriver cung cấp cho chúng ta phương thức getTitle() để lấy tiêu đề của bất cứ trang website nào. Sau đó chúng ta sẽ thực hiện lưu trữ nội dung của tiêu đề trang trong một chuỗi để thực hiện kiểm tra tiêu đề trang. Để so sánh tiêu đề trang website có đúng với tiêu đề mong muốn hay không thì chúng ta thực hiện câu lệnh If.

Ví dụ:

driver.getTitle();

Kịch bản kiểm thử tiêu đề trang website

  • Bước 1: Mở trang web facebook.com
  • Bước 2: Sử dụng phương thức getTitle() để lấy tiêu đề trang website và lưu giá vào biến String
  • Bước 3: So sánh với tiêu đề mong đợi
package demo1;

import java.util.concurrent.TimeUnit;
//import org.junit.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

//import com.sun.tools.javac.util.Assert;

public class getTitle {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver", "C:\\Users\\bui.thi.dien\\Downloads\\Setting\\Selenium\\chrome ver77\\chromedriver.exe");
		 WebDriver driver = new ChromeDriver();
		 driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);		 
		 //điều hướng đến trang web https://www.facebook.com/
		 //chúng ta có thể sử dụng một trong 2 phương thức get() hoặc navigate()
		 // ở đây mình sẽ sử dụng phương thức nagate()
		 //driver.get("https://www.facebook.com/");		 		 
		 driver.navigate().to("https://www.facebook.com");	 
		 // sử dụng phương thức getTitle để lấy tiêu đề trang web
		 String actualTitle = driver.getTitle();
		 driver.manage().window().maximize();
		 System.out.println(actualTitle);
		 String expectedTitle = "Get Title| Facebook";
		 //Thực hiện so sánh với tiêu đề trang mong muốn sử dụng -If
		 if(actualTitle.equalsIgnoreCase(expectedTitle))
		 System.out.println("Title Matched");
		 else
		 System.out.println("Title didn't match"); 
		 driver.close();
		 driver.quit();
	}
}
  1. Sử dụng javascript

Ngoài phương thức getTitle() thì chúng ta có thể sử dụng JavaScript để thực hiện các hành động trong Selenium WebDriver. Bằng cách sử dụng JavascriptExcutor chúng ta có thể sử dụng các hành động. Cụ thể là:

JavascriptExecutor javascript = (JavascriptExecutor) driver;
  //Get current page title
  String pagetitle=(String)javascript.executeScript("return document.title");  
  System.out.println("Page title is: "+pagetitle);

Ta phải thực hiện import gói sau:

import org.openqa.selenium.JavascriptExecutor;

Ta sẽ sử dụng biến pagetitle để lưu giá trị của tiêu đề trang. Sau đó thực hiện in ra màn hình tiêu đề trang. Nếu bạn muốn thực hiện so sánh với tiêu đề trang mong muốn của bạn thì có thể sử dụng câu lệnh -If như ở phần 1.

Demo:


package demo1;

import java.util.concurrent.TimeUnit;
import  org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class getTitle {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver", "C:\\Users\\bui.thi.dien\\Downloads\\Setting\\Selenium\\chrome ver77\\chromedriver.exe");
		 WebDriver driver = new ChromeDriver();		
		 driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);		 
		 //điều hướng đến trang web https://www.facebook.com/
		 //chúng ta có thể sử dụng một trong 2 phương thức get() hoặc navigate()
		 // ở đây mình sẽ sử dụng phương thức nagate()
		 //driver.get("https://www.facebook.com/");		 		 
		 driver.navigate().to("https://www.facebook.com");		 	 
		 JavascriptExecutor javascript = (JavascriptExecutor) driver;		    
		  //Get current page title
		  String pagetitle=(String)javascript.executeScript("return document.title");  
		  System.out.println("My Page Title Is  : "+pagetitle); 
		 driver.close();
		 driver.quit();
	}

}

Link demo: https://drive.google.com/file/d/1hoLnz00niesyLiGfAJrJu8-CiaER4Ans/view

Tài liệu tham khảo: http://www.software-testing-tutorials-automation.com/2014/01/selenium-webdriver-wait-for-title-with.html http://www.inviul.com/verify-title-web-page-selenium/