Nội dung bài học
==> Video xả phút thứ 20 nhé
✅ Cài đặt thư viện Selenium Webdriver vào Eclipse
Để viết được automation test với Selenium Webdriver, chúng ta cần những thứ sau:
-
Ngôn ngữ lập trình Java, vì mình đang chuẩn bị học Selenium Java mà hahaa. Các bạn có thể sử dụng Java 11 trở lên, riêng mình quen dùng Java 11 nên sẽ download JDK 11, có khi ngẫu hứng dùng JDK 17. Để đạt được kết quả tốt, các bạn cần nắm được Java Core, không cần phải giỏi, nhưng OOP (hướng đối tượng) là thứ cần tìm hiểu.
-
Công cụ hỗ trợ viết code (IDE), ở khoá học này mình sẽ sử dụng Eclipse, các bạn có thể sử dụng bất cứ IDE nào khác như Intellij IDEA hoặc là Atom. Tuy nhiên mình dùng Eclipse vì nó dễ cài đặt cho người mới học. Nó miễn phí nữa. Nhưng về sau chúng ta sẽ dùng IntelliJ IDEA ngon hơn.
-
Driver cho từng browser, tức là mỗi loại browser khi muốn chạy nó thì cần 1 loại driver tương ứng để điều khiển nó. Ví dụ Chrome thì phải dùng chromedriver, Firefox thì dùng geckodriver. Trong các ví dụ mình chỉ dùng Chrome và chromedriver để demo. Vì nó thịnh hành, sau này khi các bạn muốn run các loại Browser khác hay multi Browser, chỉ cần áp dụng đúng nguyên tắc là được.
-
Cài đặt các loại Browser cần chạy trong máy (máy mình có sẵn Chrome)
1. Cài đặt JDK vào máy tính
[Selenium Java] Cài đặt môi trường Java JDK và IDE để code
2. Cài đặt Chrome Browser
Đầu tiên, chúng ta cài đặt Chrome browser ở trang chủ
Có khi máy các bạn đã có sẵn ấy chứ. Một lưu ý cực kì quan trọng là sau bước này, các bạn phải tiến hành check version của Chrome để tải chromedriver cho đúng, nếu không sẽ phát sinh lỗi khi run script. Gõ vào chrome://settings/help để tiến hành kiểm tra Chrome version.
3. Download Chrome Driver
Tiếp theo là tải về Chrome Driver (chromedriver.exe), click vào đây
Hoặc https://googlechromelabs.github.io/chrome-for-testing/
Các bạn phải tải về đúng với version của Chrome mà mình đang dùng nhé
Sau khi tải về, các bạn giải nén ra, sẽ ra một tập tin tên là chromedriver.exe (trên Window), còn trên máy MAC là chromedriver
Nhớ lưu ý đường dẫn của nó, ví dụ mình đang bỏ ở ổ đĩa C và trong thư mục tên là Webdriver thì đường dẫn là C:\Webdriver\chromedriver.exe
4. Tải về Selenium Webdriver
Trước hết, chúng ta hãy tải Selenium Webdriver về máy với link An đã chuẩn bị
🔆 Link tải về từ tài nguyên: Tài nguyên cài đặt
(Hiện tại chúng ta dùng bản 3.141.59 là bản v3 ổn nhất của Selenium WebDriver, tuy nhiên sau này nên dùng v4)
Đây là 1 file có đuôi là *.jar, hãy nhớ đường dẫn của nó để xíu dán cho đúng vào code
5. Cài đặt Eclipse và tạo project auto test mới
Eclipse thì các bạn tải ở đây:https://www.eclipse.org/downloads/
🔆 Từ bản mới 2022 về sau Eclipse yêu cầu dùng JDK 17 trở lên nên các bạn chú ý nhé.
Các bạn tải về rồi nhấn cài đặt như các app khác thôi nhé.
Sau đó chúng ta mở Eclipse lên, tạo một project mới
Đặt tên cho Project đó, nhớ chọn JDK đúng với Version Java của mình
Sau khi tạo Project Java xong, tới một bước quan trọng là bỏ library của Selenium Webdriver vào Project, để nó có thể chạy được các command của Webdriver
Ấn chuột phải vào Project, sau đó chọn Properties
Chọn Java Build Path => Libraries => click chọn Classpath => Add External Jar => Chọn tới cái file Selenium có đuôi jar đã download bên trên
Nếu ra kết quả, xuất hiện một Referenced Library giống hình, là ta đã thành công
Hoàn tất quá trình Add thư viện Selenium vào Eclipse.
✅ Chạy code Auto đầu tiên
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
}
}
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.exe cho Firefox browser.
Chúng ta thực hiện việc này bằng cách sử dụng lệnh: System.setProperty()
Đây là keyword cần phải nhớ "webdriver.chrome.driver"
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 biến instance cho driver là "driver" (các bạn đặt tên tùy ý)
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 Ctrl + 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 lỗi tương tự thì 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 Ctrl + Shift + O cho nhanh. Tuy nhiên nó vẫn có ưu điểm của nó, đến phần cài đặt 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://anhtester.com
driver.navigate().to("https://anhtester.com");
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 Framework 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 Ctrl + F11 để run thử, nếu browser được mở lên và đi đến https://anhtester.com, 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 - Đi đến 1 url
driver.navigate().to("https://anhtester.com");
//3 - Lấy Title và in ra console
System.out.println(driver.getTitle());
// Thoát hẳn Browser
driver.quit();
Như vậy chúng ta đã có một class hoàn chỉnh sau khi ghép đầy đủ các đoạn script trên với nhau, ấn Ctrl + F11 hoặc click vào nút Run trên IDE để chạy Selenium nào.
Quan sát và chờ kết quả, Browser sẽ thực thi các bước y hệt như những gì chúng ta nói trên, bên phải Console đã in ra Title của page Anh Tester, chúng ta đã thành công 😋
💥 Các bạn nên chuyển dần sang IntelliJ IDEA để dùng cho tiện và đẹp hơn nhé.
Video hướng dẫn dùng IntelliJ IDEA: https://anhtester.com/blog/selenium-java/tao-project-selenium-java-voi-intellij-ide
An giới thiệu thêm vài website hỗ trợ các bạn chạy auto test:
POS: https://saleserpnew.bdtask.com/saleserp_v9.8_demo/login
CRM: https://rise.fairsketch.com/signin
HRM: https://hrm.anhtester.com/
Anh Tester
facebook.com/anhtester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu