# Lời nói đầu

## Mục  tiêu&#x20;

* Ebook này mô tả nội dung khoá học về Selenium Java cơ bản tại testingvn.com. Với mục đích là một tài liệu luôn được cập nhật để các bạn học viên mới lẫn củ có thêm thao khảo. &#x20;

## Kiến thức cần &#x20;

* Working with IDEs - IntelliJ
* Java programing fundamentals:
  * Các bạn có thể tham khảo khóa học \[Java Programming]\(<https://testautomationu.applitools.com/java-programming-course/>]
  * Hoặc tham khảo ebook:  \[Java For Tester]\(<https://github.com/cuhavp/ebooks/blob/master/java/Java%20For%20Testers%20-%20Learn%20Java%20Fundamentals%20Fast.pdf>)
* Testing fundamentals(test case, test plan, test suite ...)

## Nội dung khóa học

### Mục tiêu:

* Hiểu cơ bản về kiểm thử tự động
* Hiểu cách sử dụng selenium để viết các test cases làm việc với các dạng đối tượng thường gặp như, textbox, label, button, link, web table.
* Sử dụng các feature của TestNG như Hooks(annotations), xml file, Parameter, DataProvider...

### Course Outline:

#### Module 1: Ôn tập lại kiến thức lập trình với Java

* Cách tạo dự án Java với Maven
* Cách tạo package, class, method
* Làm việc với biến
* Luyện tập với các bài coding phỏng vấn ngắn

#### Module 2: Selenium Căn bản

* Mở các trình duyệt: chrome, firefox, Edge, safari
* Lấy đối tượng để làm việc với selenium
* Luyện tập với các dạng đối tượng thường gặp như text box, dropdwon, table, checkbox ...

#### Module 3: Kết hợp TestNG

* Sử dụng TestNG để tạo một test case, test plan
* Sử dụng các features của TestNG như Hook, DataProvider, Parameter
* Kết hợp maven surefire plugin

## Kế hoạch các buổi học

* Buổi 1: Ôn tập java (string/number)
* Buổi 2: Ôn tập java (Array, List, Class)
* Buổi 3: Mở trình duyệt với các chế độ(bình thường, ẩn(headless), giả tọa độ, ...)
* Buổi 4: Luyện tập với lấy đối tượng
* Buổi 5: Làm việc với các dạng đối tượng: Checkboxes, Dropdown, Hyper link
* Buổi 6: Làm việc với Web Table
* Buổi 7: Làm việc với JavaScript Alert popup, mouse/keysboard actions
* Buổi 8: Page Object Model
* Buổi 9: Review code và chuyển đổi các test script trước thành POM
* Buổi 10: Giới thiệu về Github action cơ bản và tổng kết khóa học


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tvn.gitbook.io/selenium-java/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
