Hướng dẫn why we use css selector over xpath? - tại sao chúng tôi sử dụng bộ chọn css trên xpath?

Bạn có thể tự hỏi liệu việc sử dụng các bộ chọn CSS hoặc XPath ID có thuận lợi nếu lựa chọn phần tử không, nhưng điều này chủ yếu phụ thuộc vào bối cảnh mà chúng đang được sử dụng! Cả hai đều là các công cụ mạnh mẽ được sử dụng để truy cập các yếu tố web và có quyền truy cập vào toàn bộ DOM của một trang web, vì vậy một trong hai trong số đó là "tốt hơn". Tuy nhiên, một số điều dễ dàng hơn để thể hiện với các bộ chọn CSS và những thứ khác dễ dàng hơn để thể hiện bằng ID XPath.

Show
  • Thường nhanh hơn xpath
  • Dễ dàng hơn để học/hiểu cú pháp. Nói cách khác, họ dễ đọc hơn.
  • Được sử dụng nhiều trong phát triển (jQuery phụ thuộc rất nhiều vào CSS)
  • Nói chung, bộ chọn CSS có thể thực hiện hầu hết mọi thứ mà ID XPath có thể làm
  • Nếu bạn đang nhắm mục tiêu một phần tử trong Dom Shadow. (Các phần tử trong bóng tối không thể được nhắm mục tiêu với XPath.)

CSS, là viết tắt của các bảng kiểu xếp tầng, là một ngôn ngữ được sử dụng để mô tả các chi tiết trình bày của một tài liệu được viết bằng ngôn ngữ đánh dấu như XML hoặc HTML. Nó mô tả cách các phần tử HTML được hiển thị trên màn hình. CSS hỗ trợ trong thiết kế, bố cục và biến thể trong màn hình cho các thiết bị và kích thước màn hình khác nhau. Bạn có thể đọc thêm về điều này ở đây.

Bộ chọn

Thí dụ

Sự mô tả

.class

.intro

Chọn tất cả các phần tử với lớp = "Giới thiệu"

#id

#firstname

Chọn phần tử với ID = "FirstName"

[attribute~=value]

[title~=flower]

Chọn tất cả các yếu tố với một thuộc tính tiêu đề chứa từ "hoa"

  • Các trường hợp bạn chỉ muốn hỗ trợ một loại chọn
  • Trình duyệt của bạn không hỗ trợ đầy đủ CSS hoặc tất cả các bộ chọn CSS bạn cần (ví dụ như các trình duyệt cũ hơn như IE không hỗ trợ tất cả các bộ chọn CSS)
  • Bạn cần thực hiện một nhiệm vụ mà chỉ một XPath sẽ hỗ trợ (tìm một phần tử bằng cách di chuyển trở lại DOM)

XPath là ngôn ngữ đường dẫn XML và là ngôn ngữ truy vấn được sử dụng để chọn các nút từ tài liệu XML. Tìm các yếu tố dựa trên ID XPath của họ thường hoạt động rất tốt và linh hoạt. Các biểu thức XPath trông rất giống với những biểu thức bạn sẽ thấy khi làm việc với hệ thống tệp máy tính truyền thống. Tuy nhiên, có những khu vực sử dụng điều này như một chiến lược định vị chính có thể bị cản trở bởi hiệu suất chậm của nó.

📘Ví dụ xpath chọn lọc

Ví dụ, bộ chọn và cú pháp XPath có thể được tìm thấy ở đây.

  • Chrome và Firefox được điều chỉnh cho hiệu suất CSS nhanh hơn
  • XPath hoạt động nhanh hơn trong IE 11

Một trong những phân biệt chính giữa XPath và CSS là với XPath, bạn có thể tìm kiếm các yếu tố cả về phía trước và ngược trong hệ thống phân cấp DOM, trong khi CSS chỉ hoạt động theo hướng chuyển tiếp. Điều này có nghĩa là với XPath, bạn có thể định vị các yếu tố cha mẹ bằng cách sử dụng các phần tử con. Tuy nhiên, trên hầu hết các trình duyệt, anh chị em lồng nhau và truyền tải bàn làm việc với Xpath ID là đắt tiền.

Cập nhật 3 tháng trước


Khi các công cụ quét và tự động hóa web ngày càng hữu ích và dễ tiếp cận, ngày càng có nhiều công ty đầu tư vào lĩnh vực này. Nó không phải là vấn đề công nghệ hoặc khung bạn sử dụng; Cuối cùng, bạn sẽ có một quyết định để đưa ra - chọn Xpath hoặc CSS. Trong bài viết này, chúng tôi sẽ kiểm tra từng tùy chọn một cách chi tiết và giúp bạn đưa ra quyết định rằng mà sẽ cho phép bạn tận dụng tốt nhất Xpath và CSS.

Bộ chọn XPath là gì?

Làm thế nào để tạo XPath?

Ưu điểm của việc sử dụng XPath

Bộ chọn CSS là gì?

Làm thế nào để tạo bộ chọn CSS?

<?xml version="1.0" encoding="UTF-8"?>
<inventory>
    <product type="bottle">Water Bottle</product>
    <brand>ABC</brand>
    <code type="upc-13">54268453659458</code>
    <stock>54</stock>
    <description>Red colored water bottle</description>
</inventory>

Ưu điểm của việc sử dụng bộ chọn CSS

CSS vs XPath so sánh

Lựa chọn giữa XPath và CSS

Làm thế nào để tạo XPath?

Ưu điểm của việc sử dụng XPathdocument1.html.

<html>
   <head>
      <title>XPath vs CSS</title>
   </head>
   <body>
      <h2 id="header">Welcome to XPath</h2>
      <div id="navbar">
         <a href="https://oxylabs.io/blog" id="blog" class="nav">Visit our Blog</a>
         <a href="https://oxylabs.io/resources/case-studies" class="nav">Case Studies</a>
      </div>
   </body>
</html>

Bộ chọn CSS là gì?

Làm thế nào để tạo bộ chọn CSS?

Ưu điểm của việc sử dụng bộ chọn CSS

  • CSS vs XPath so sánhXPath vs CSS.

  • Lựa chọn giữa XPath và CSSid="blog" is an attribute node. 

  • Giá trị nguyên tử - Đây là các giá trị cuối cùng có thể là văn bản có trong một phần tử hoặc giá trị của một thuộc tính. Ví dụ: Nghiên cứu trường hợp của người Viking.

Những nút này có thể có nhiều loại mối quan hệ với nhau. Biết tên của các mối quan hệ này là điều cần thiết để hiểu cách tạo bộ chọn XPath. Các nguyên tắc cơ bản sau đây sẽ được áp dụng cho cả XPath và CSS.

So sánh các bộ chọn XPath và CSS

XPath cho phép dòng chảy hai chiều, có nghĩa là đường truyền có thể đi cả hai chiều - từ trẻ đến cha mẹ và cha mẹ đến con. Ngược lại, CSS cho phép dòng chảy một chiều, do đó, đường truyền chỉ hoạt động từ cha mẹ sang con. Liên quan đến tốc độ và hiệu suất, XPath chậm hơn và CSS là lựa chọn tốt hơn về tốc độ và hiệu suất. & NBSP; enables bidirectional flow, meaning the traversal may go both ways – from child to parent and parent to child. On the contrary, CSS enables one-directional flow, so the traversal works only from parent to child. Concerning speed and performance, XPath is slower, and CSS is a better choice in terms of speed and performance. 

Tuy nhiên, bạn nên dùng nó với một nhúm muối. Trình duyệt đang phát triển với tốc độ nhanh. Ngoại trừ Firefox và Safari, hầu hết mọi trình duyệt hiện đều dựa trên crom. Tương tự, tài nguyên máy tính đang trở nên ít tắc nghẽn hơn. & NBSP;

Cuối cùng, hầu hết các thử nghiệm được thực hiện cho khung selen. Tuy nhiên, trong khi quét web, có rất nhiều yếu tố khác trong hình ảnh. Nếu không cần kết xuất, sẽ không cần phải sử dụng trình duyệt đầy đủ. & NBSP;

Lựa chọn giữa XPath và CSS

Đầu tiên và quan trọng nhất, bạn không nên chọn cái này vì tốc độ. XPath sẽ nhanh hơn trong một số trường hợp và bộ chọn CSS sẽ nhanh hơn trong các trường hợp khác. Như đã thảo luận, sự khác biệt rất nhỏ với các trình duyệt hiện đại và ngôn ngữ lập trình đến nỗi nó nên được loại bỏ hoàn toàn.

Trong khi quét web, các yếu tố khác, chẳng hạn như mạng, đóng vai trò quan trọng hơn nhiều.

Có hai kịch bản khi CSS thậm chí không phải là một tùy chọn - đi qua cây và hàm chứa cho kết hợp một phần.contains function for partial match.

Sử dụng các công cụ cạo web như súp đẹp, bạn có thể xem xét sử dụng các phương thức Find và Find_all. Chúng được tối ưu hóa cho súp đẹp, và bạn sẽ không phải lo lắng về việc chọn giữa XPath và CSS. & NBSP;find and find_all methods. These are optimized for Beautiful Soup, and you will not have to worry about choosing between XPath and CSS. 

Sự kết luận

Tóm tắt, quyết định sử dụng các bộ chọn không dựa vào hiệu suất của XPath và CSS. Thay vào đó, bạn nên tập trung vào các yếu tố khác, chẳng hạn như tìm bộ tính năng cần thiết hoặc xem xét sự dễ sử dụng và tương thích. Bạn có thể đọc một hướng dẫn chi tiết về việc quét web với Python trong blog của chúng tôi.

Thông tin về các Tác giả

Monika Maslauskaite

Cựu quản lý nội dung

Monika Maslauskaite là cựu quản lý nội dung tại Oxylabs. Một sự kết hợp giữa thế giới công nghệ và sáng tạo nội dung là điều cô ấy siêu đam mê trong con đường chuyên nghiệp của mình. Mặc dù không có việc làm, bạn sẽ thấy cô ấy đang xem những bộ phim bí ẩn, tâm lý (về cơ bản, tất cả các loại phim tâm trí), nhảy hoặc chỉ tạo ra các vũ đạo trong đầu.

Tất cả thông tin trên blog Oxylabs được cung cấp trên cơ sở "như là" và chỉ cho mục đích thông tin. Chúng tôi không đại diện và từ chối tất cả các trách nhiệm pháp lý đối với việc bạn sử dụng bất kỳ thông tin nào có trên blog Oxylabs hoặc bất kỳ trang web của bên thứ ba nào có thể được liên kết trong đó. Trước khi tham gia vào các hoạt động tuyệt vời dưới bất kỳ hình thức nào, bạn nên tham khảo ý kiến ​​của các cố vấn pháp lý của mình và đọc cẩn thận các điều khoản dịch vụ của trang web cụ thể hoặc nhận giấy phép cạo.

Những bài viết liên quan

Trong bài viết này

Là tốt hơn để sử dụng bộ chọn CSS hoặc XPath?

XPath cho phép dòng chảy hai chiều, điều đó có nghĩa là cả hai cách có thể là cả hai cách từ cha mẹ đến con và con đến cha mẹ. CSS chỉ cho phép một luồng định hướng có nghĩa là chỉ từ cha mẹ sang con. XPath chậm hơn về hiệu suất và tốc độ. CSS có hiệu suất và tốc độ tốt hơn XPath.Css has better performance and speed than xpath.

Sự khác biệt chính giữa các bộ chọn XPath và CSS là gì?

Xin chào USHMA, sự khác biệt chính giữa các bộ chọn XPath và CSS là, với XPath, chúng ta có thể đi qua cả về phía trước và lùi trong khi bộ chọn CSS chỉ di chuyển về phía trước.Mặc dù các bộ chọn CSS hoạt động tốt hơn nhiều so với XPath và nó được ghi nhận rõ ràng trong cộng đồng Selenium.with the XPath we can traverse both forward and backward whereas CSS selector only moves forward. Although CSS selectors perform far better than Xpath and it is well documented in Selenium community.

Tại sao chúng ta cần bộ chọn CSS?

Trong CSS, các bộ chọn được sử dụng để nhắm mục tiêu các phần tử HTML trên các trang web của chúng tôi mà chúng tôi muốn tạo kiểu.Có rất nhiều bộ chọn CSS có sẵn, cho phép độ chính xác hạt mịn khi chọn các yếu tố theo kiểu.to target the HTML elements on our web pages that we want to style. There are a wide variety of CSS selectors available, allowing for fine-grained precision when selecting elements to style.

Tại sao chúng ta sử dụng bộ chọn CSS trong selen?

Về cơ bản, bộ chọn CSS kết hợp bộ chọn phần tử và giá trị bộ chọn có thể xác định các phần tử cụ thể trên trang web.Giống như XPath, bộ chọn CSS có thể được sử dụng để xác định vị trí các phần tử web mà không cần ID, lớp hoặc tên.to locate web elements without ID, class, or Name.