Phần 1: Selenium Webdriver - Tạo script automation đầu tiên với Java và Selenium Webdriver

Ở bài trước, chúng ta đã setup được Selenium Webdriver và môi trường cần thiết để sẵn sàng cho việc viết script. Ở bài viết này chúng ta sẽ cùng nghiên cứu và viết một bộ script đầu tiên cho Selenium Webdriver với Java.

Trong bài viết này, chúng ta sẽ sử dụng Eclipse để dùng Java viết script cho Selenium chạy
Kịch bản trong bài viết này như sau:

1. Setup đường dẫn trong code cho Webdriver
2. Khởi tạo instance cho driver
3. Đi đến một trang web bất kì 
4. Maximize browser của chúng ta
5. Bật chế độ fullscreen cho browser
6. In ra console Title của page chúng ta đang mở
6. Tắt browser


Nào bắt đầu thôi, trước tiên hãy tạo một class mới, bằng cách click chuột phải vào src, sau đó chọn New = > Class

Cấu trúc thư mục hiển thị trên phần Explorer của Eclipse (IDE) giống như trong Window vậy, đồng cấp tức là chung thư mục, ở đây src là cha, thì nếu ta tạo 1 Class tên là FirstDemo, SecondDemo thì 2 class này nằm trong thư mục src. Ở đây src được gọi là source folder. Cấu trúc và cách phân lớp nó mình sẽ nói sau, tạm thời ta cứ tạo một Class tên là FirstDemo nằm trong src để chạy thử trước nhé



Lúc tạo Class các bạn tạo luôn 1 package tên là test - như hình, package chính là thư mục chứa file Class FirstDemo của chúng ta

Sau khi tạo xong class, IDE sẽ auto generate cho chúng ta một đoạn script có dạng như sau

package test;

public class FirstDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}


Nếu bạn chưa có căn bản về Java, tôi khuyên bạn nên học qua một khóa Java core căn bản để hiểu hơn 

Tiếp đến , Selenium WebDriver sẽ cần biết đâu là tệp thực thi mà bạn có, bởi vì, như đã nói ở bài trước, chúng ta cần chromedriver.exe để chạy Chrome browser, tương tự với geckodriver cho Firefox browser. Chúng ta thực hiện việc này bằng cách sử dụng System.setProperty (). 
Đây là keyword cần phải nhớ "webdriver.chrome.driver," là keyword
Trong khi c:\\chromedriver.exe là đường dẫn chứa file chromedriver.exe mà chúng ta đã tải về ở bài trước 


    System.setProperty("webdriver.chrome.driver", "c:\\chromedriver.exe");

 

Sau đó lại khởi tạo instance cho driver

WebDriver driver = new ChromeDriver();
Lúc này hãy xem script của chúng ta, có vấn đề, IDE sẽ báo lỗi vì nó không hiểu WebDriver là gì, làm sao mà tạo được instance từ nó được  

 

Để giải quyết vấn đề này, chúng ta có một số cách như sau:
1. Nhấn Control + Shift + O để IDE import thư viện vào
2. Click chuột trái vào chỗ mình đánh dấu trên hình, chọn import WebDriver, sau đó vẫn còn lại, ta lặp lại thao tác để import nốt ChromeDriver là xong. Cách này hơi lằng nhằng vì phải ấn chuột mấy lần, vẫn dùng Control Shift + O cho nhanh. Tuy nhiên nó vẫn có ưu điểm của nó, đến phần TestNG mình sẽ giải thích

Sau khi import, đây là đoạn script 

package test;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class FirstDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	    System.setProperty("webdriver.chrome.driver", "c:\\chromedriver.exe");
	 
	    WebDriver driver = new ChromeDriver();


	}

}

Sau khi đã hoàn tất hết, chúng ta dùng phương thức get(); để đi đến site https://course.devforum.info/

driver.get("https://course.devforum.info/");

Phương thức get(); nhận tham số là một chuỗi URL nhé. Mình sẽ hướng dẫn các bạn đọc Document của Selenium để biết cách dùng các phương thức (hàm) của nó. Để sau này có thể tự đọc các FW khác.
Mở một trang web chỉ gói gọn trong 1 dòng đó thôi. Tại đây các bạn có thể nhấn Control + F11 để run thử, nếu browser được mở lên và đi đến https://course.devforum.info/, có nghĩa là bạn đã làm đúng
Mình sử dụng một loạt các phương thức khác, để thực thi kịch bản ghi ở trên


        //1 - Maximize browser của mình
        driver.manage().window().maximize();

        //2 - Chuyển qua chế độ fullscreen
        driver.manage().window().fullscreen();

        //3 - Lấy Title và in ra console
        
        System.out.println(driver.getTitle());

        // Quit Browser

        driver.quit();

Như vậy chúng ta sẽ có một class hoàn chỉnh sau khi ghép đầy đủ các đoạn script trên với nhau, ấn Control + F11 hoặc click vào nút play trên IDE để chạy Selenium nào


Quan sát và chờ kết quả, Browser sẽ thực thi hệt như những gì chúng ta nói, bên phải Console đã in ra Title của Page Devforum, chúng ta đã thành công... Wohoooolaughing

Bài viết sau mình sẽ hướng dẫn các bạn cách đọc document, method cũng như Refractor code lại cho gọn
Chào các bạn