Giới thiệu Jsoup

Một phần của tài liệu Nghiên cứu về kiểm thử dựa trên mô hình và ứng dụng (Trang 38)

Jsoup [*] là thư viện mã nguồn mở viết bằng ngôn ngữ lập trình Java. Jsoup cung cấp các API tối ưu cho việc trích chọn và thao tác với dữ liệu, giúp phân tích tài liệu HTML thành mô hình đối tượng tài liệu (Document Object Model - DOM).

Jsoup có thể phân tích một trang tài liệu HTML từ một đường dẫn trang web, tệp tin hay chuỗi ký tự. Tìm và trích xuất dữ liệu bằng cách sử dụng DOM travesal và CSS Selector. Thao tác với các phần tử, chuỗi ký tự, thuộc tính của HTML.

Ví dụ: Để phân tích và duyệt một tài liệu HTML từ một chuỗi ký tự: // String html = "<html><head><title>First parse</title></head>" + "<body><p>Parsed HTML into a doc.</p></body></html>";

Document doc = Jsoup.parse(html);

Hàm parse (String html) giúp phân tích một tài liệu HTML thành một đối tượng Document. Từ đó, có thể duyệt và lấy ra các phần tử của đối tượng DOM.

Ngoài ra, Jsoup còn có khả năng lấy và phân tích tài liệu HTML từ các trang web.

Document doc = Jsoup.connect("http://example.com/").get();

String title = doc.title();

Hàm title() giúp lấy ra được tiêu đề của trang web.

Jsoup hỗ trợ các hàm tìm kiếm, trích xuất các phần tử và thao tác dữ liệu

của tài liệu HTML sau khi được phân tích thành đối tượng Document.

- Tìm kiếm phần tử:

o Theo id: getElementById(String id)

Element content = doc.getElementById("content");

o Lấy phần tử HTML theo loại thẻ: getElementsByTag(String tag)

Elements links = content.getElementsByTag("a");

o Lấy thuộc tính của các phần tử: getElementsByAttribute(String key)

for (Element link : links) {

String linkHref = link.attr("href");

String linkText = link.text();

}

- Trích xuất dữ liệu của các phần tử:

o Lấy giá trị của thuộc tính của phần tử : attr(String key)

o Lấy tất cả các thuộc tính của phần tử: attributes()

o Lấy id, tên lớp của phần tử: id(), className()

o Lấy dữ liệu của phần tử: text(),html(),data()

Với những tính năng nổi trội trên, Jsoup hỗ trợ cho Selenium xác định được

những phần tử Web mà không được định nghĩa các thuộc tính định danh như id,

name, classname, v.v.

Một phần của tài liệu Nghiên cứu về kiểm thử dựa trên mô hình và ứng dụng (Trang 38)