XPath là gì? Hướng dẫn sử dụng XPath cơ bản

Khi bạn tìm hiểu về lập trình và phát triển web, có thể bạn đã quen thuộc với XML, HTML, CSS và JavaScript. Vì vậy, bạn đã bao giờ nghe về việc sử dụng XPath để hỗ trợ trao đổi và truy xuất dữ liệu trong các tài liệu XML cũng như sử dụng nó để kiểm tra các ứng dụng web chưa?

Tìm hiểu về XPath

Lưu ý: XPath có nhiều cách sử dụng khác nhau. Trong bài báo này. thuthuatkiemtien.com sẽ tập trung khai thác khía cạnh thử nghiệm ứng dụng web của XPath.

XPath là gì?

XPath là một ngôn ngữ được thiết kế với mục đích giúp các ứng dụng có thể "di chuyển" bên trong các tệp XML để truy xuất các giá trị và thuộc tính của các phần tử.

Cách sử dụng điển hình mà bạn có thể dễ dàng nhận ra nhất là XPath sử dụng biểu thức đường dẫn để chọn các nút hoặc tập hợp các nút trong một tài liệu XML.

“Hình dạng” tương tự như XPath mà bạn đang học là cấu trúc thư mục cây của hệ thống tệp trong hệ điều hành bạn đang sử dụng!

xpath-la-gi

XPath trong Selenium là gì?

Dành cho những bạn chưa biết: Selen Là một trình duyệt tự động, Nó mạnh mẽ, miễn phí và bạn có thể làm bất cứ điều gì bạn muốn với nó. Hầu hết người dùng sử dụng Selenium như một công cụ để kiểm tra các ứng dụng web, nhưng bạn vẫn có thể khai thác nhiều tính năng từ Selenium!

XPath trong Selenium là một đường dẫn XML được sử dụng để điều hướng qua cấu trúc HTML của trang. Như bạn có thể hiểu, XPath là một cú pháp hoặc ngôn ngữ để tìm kiếm bất kỳ phần tử nào trên trang bằng cách sử dụng biểu thức đường dẫn XML hoặc sử dụng cấu trúc HTML DOM.

Cú pháp của XPath là gì?

XPath chứa đường dẫn của phần tử nằm trên trang web của bạn, đây là cấu trúc chuẩn để tạo XPath:

xpath-la-gi

Trong đó:

  • //: chọn nút hiện tại
  • Tên thẻ: tên thẻ nút
  • @: chọn tài sản
  • Thuộc tính: tên thuộc tính của nút
  • Giá trị: giá trị thuộc tính

Để định vị chính xác phần tử, chúng ta sẽ có rất nhiều thông tin, phần tử hoặc thuộc tính của phần tử đó để xác định như:

XPath

Tìm kiếm theo các yếu tố khác nhau

TÔI

Để tìm phần tử theo ID của phần tử

Tên lớp

Để tìm phần tử theo Tên lớp của phần tử

Tên

Để tìm phần tử theo tên của phần tử

văn bản liên kết

Để tìm phần tử theo văn bản của liên kết

XPath

XPath là cần thiết để có thể tìm thấy các phần tử động và "tra cứu" giữa các phần tử khác trên trang web

Đường dẫn CSS

Đường dẫn CSS chỉ định vị các phần tử không có tên, lớp hoặc ID.

Có bao nhiêu loại XPath?

Về cơ bản, chúng ta sẽ có 2 loại XPath bao gồm:

  • XPath tương đối: XPath tương đối / XPath không ổn định
  • XPath tuyệt đối: XPath tuyệt đối / XPath ổn định

Tiếng Anh chỉ có một phiên bản, nhưng trong tiếng Việt sẽ có thêm nhiều tên gọi khác nhau. Về cơ bản, XPath tuyệt đối và XPath tương đối là hai tên được sử dụng phổ biến nhất.

XPath tương đối / XPath không ổn định

XPath tương đối sẽ bắt đầu thực thi từ giữa cấu trúc DOM HTML, từ vị trí dấu hiệu //. Điều này có nghĩa là XPath tương đối sẽ tìm kiếm các phần tử ở bất kỳ đâu trên trang web và không cần một đường dẫn dài, đầy đủ.

Trong thực tế, XPath tương đối sẽ được ưu tiên hơn vì không bắt buộc phải có một đường dẫn hoàn chỉnh đến phần tử mẹ.

Ví dụ phần tử KIỂM TRA trong ảnh.

xpath-la-gi

Nếu bạn thực hiện kiểm tra trên các ứng dụng web có XPath tương đối, đôi khi bạn sẽ nhận được các bộ phận từ các bộ phận khác nhau. Lý do là đôi khi các nhà phát triển web sử dụng tạo các phần tử động, một kỹ thuật khá phổ biến khi phát triển ứng dụng web.

XPath tuyệt đối / XPath ổn định

XPath tuyệt đối là cách trực tiếp và chính xác nhất để tìm ra vị trí của một phần tử. Tuy nhiên, nếu website sử dụng các phần tử create thì chắc chắn việc tìm kiếm của bạn sẽ thất bại vì đường dẫn không ổn định.

Đặc điểm của XPath tuyệt đối là XPath tuyệt đối bắt đầu bằng dấu gạch chéo /, có nghĩa là bạn có thể chọn các phần tử từ nút gốc.

Ví dụ phần tử KIỂM TRA trong hình ảnh: đường dẫn chính xác sẽ là "siêu dài".

xpath-la-gi

Hướng dẫn sử dụng XPath cơ bản

Sau khi tìm hiểu cơ bản về XPath, chúng ta sẽ tiếp tục sử dụng XPath cơ bản!

Sử dụng XPath từ cơ bản nhất

Về cơ bản, biểu thức XPath có các nút hoặc danh sách các nút với các thuộc tính như tên, ID, tên lớp, v.v. chúng ta có một ví dụ cơ bản trong hình ảnh như sau:

xpath-la-gi

Ngoài ra, thuthuatkiemtien.com cũng chuẩn bị một số ví dụ khác để bạn tham khảo:

  • XPath = // đầu vào[@type=’text’]
  • XPath = // nhãn[@id=’tinohost’]
  • XPath = // đầu vào[@value=’hostinggiare’]
  • XPath = // *[@class=’wiki’]
  • XPath = // a[@href=’https://wiki.tino.org/’]
  • XPath = // img[@src=’//wiki.tino.org/images/home/java.png’]

Sử dụng Contains () trong XPath

Trong XPath, bạn có thể sử dụng. chức năng Chứa() để tìm các giá trị của bất kỳ thuộc tính động nào, chẳng hạn như thông tin xác thực.

xpath-la-gi

Trong ví dụ bạn có thể thấy với một dòng, chúng ta có thể tìm thấy 2 nút trong trang đăng nhập là nút ĐĂNG NHẬP và nút ĐẶT LẠI. Đặc điểm: cả hai đều có từ "btn". Đây là từ viết tắt của tên biến cái nút. Có thể hiểu đây là quy tắc chung khi viết code, hầu hết các lập trình viên đều thực hiện điều này với các hàm nút.

Sử dụng toán tử trong XPath

Chúng ta sẽ xem xét một ví dụ ở trên 2 toán tử OR và AND. Nếu bạn đã quen với việc viết mã, bạn sẽ thấy 2 toán tử này bình thường. Nếu bạn chưa rành về mã hóa, thuthuatkiemtien.com sẽ giải thích ngắn gọn về 2 toán tử này:

  • HOẶC LÀ: sử dụng 2 điều kiện, nếu 1 trong 2 đúng thì nó sẽ đúng. XPath sẽ liệt kê các phần tử đáp ứng ít nhất một điều kiện lọc.
  • VÀ: sử dụng 2 điều kiện, cả hai điều kiện đúng được tính là đúng, 1 trong 2 điều kiện là sai sẽ được tính là sai và bỏ qua phần tử.

Sử dụng text () trong XPath

Nếu bạn muốn tìm một phần tử và đoán tên phần tử đó là gì, bạn có thể sử dụng hàm XPathText (). Trong selenium webdriver, bạn có thể sử dụng chức năng này để tìm kiếm các phần tử dựa trên văn bản (nội dung chuỗi có thể là tên phần tử, giá trị hoặc ID). Điều kiện là các phần tử này sẽ cần ở dạng chuỗi.

Ví dụ, bạn tìm thấy bằng: XPath = // td[text()=’UserID’], sẽ có một phần tử duy nhất trên trang đăng nhập có văn bản là UserID.

xpath-la-gi

Đến đây, chúng ta đã cùng nhau tìm hiểu rất nhiều thông tin về XPath là gì. thuthuatkiemtien.com chúc bạn sẽ có thể trở thành người kiểm thử ứng dụng web chuyên nghiệp hoặc bạn sẽ có thể kiểm tra trang web của mình thành công.

Bài viết có tham khảo nội dung từ nhiều nguồn: W3Schools, Guru99, Learn Programming, Wikipedia, Developer Mozilla ...

Câu hỏi thường gặp về XPath

Công cụ hỗ trợ XPath miễn phí và mạnh mẽ nào?

Nếu bạn đang sử dụng trình duyệt Chrome hoặc trình duyệt có nhân Chrome và có thể sử dụng các tiện ích mở rộng, bạn nên sử dụng:

  • ChroPath với hơn 200 nghìn lượt tải xuống và xếp hạng 4,5 sao trên cửa hàng Chrome.
  • SelectorsHub với hơn 50 nghìn lượt tải xuống.

Cả hai tiện ích mở rộng này đều rất tuyệt để sử dụng và hoàn toàn miễn phí!

Làm cách nào để tìm hiểu thêm về XPath?

Nếu bạn vẫn muốn tìm hiểu thêm về XPath, có rất nhiều tài nguyên sẵn có cho bạn tham khảo!

XPath trên Wikipedia sẽ cung cấp cho bạn những thông tin cơ bản nhất và lịch sử phát triển.

XPath trên Developer Mozilla có thông tin khá cô đọng bằng tiếng Anh, nhưng cần phải có kiến ​​thức chuyên môn để hiểu được tài liệu của họ.

Nếu bạn chỉ muốn xem mã, trang DevHints rất đầy đủ và chi tiết về XPath!

XPath có bao nhiêu chức năng?

Tính đến nay, XPath đã bổ sung tới 200 hàm với nhiều hàm cho giá trị chuỗi, số, boolean, ngày và giờ, v.v.

XPath chỉ có thể sử dụng trong web phải không?

Không phải. Ngày nay, bạn có thể sử dụng các biểu thức XPath không chỉ trong HTML, CSS, JavaScript, XML mà còn trong nhiều ngôn ngữ khác như: Java, Python, C / C ++, PHP và nhiều ngôn ngữ khác.

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Lầu 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, P. Bến Nghé, Q.1, TP.
    VPĐD: 42 Trần Phú, P.4, Q.5, TP.HCM
  • Điện thoại: 0364 333 333
    Tổng đài miễn cước: 1800 6734
  • Email: sales@tino.org
  • Trang web: www.tino.org

Xem thêm nhiều bài viết về : Kiến Thức Cơ Bản

Nguồn: XPath là gì? Hướng dẫn sử dụng XPath cơ bản

Nhận xét

Bài đăng phổ biến từ blog này

3 Cách để kiếm tiền từ blog WordPress

Google AdSense bỏ giới hạn số lượng quảng cáo trên mỗi trang

Toàn tập danh sách liên kết đơn trong C++