Hướng dẫn why xpath is preferred over css? - tại sao xpath được ưa thích hơn css?


Cả XPath và CSS đều là một trong những người định vị được sử dụng thường xuyên nhất trong selen. Mặc dù có các trình định vị khác như ID, tên, ClassName, TagName và văn bản liên kết, v.v., XPath và CSS được sử dụng khi không có thuộc tính duy nhất nào có sẵn để xác định các yếu tố.

Show

Có một số khác biệt giữa XPath và CSS được liệt kê dưới đây -

  • 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.

  • XPath cho phép nhận dạng với sự trợ giúp của văn bản có thể nhìn thấy xuất hiện trên màn hình với chức năng trợ giúp của văn bản (). CSS không có tính năng này.

  • CSS tùy chỉnh có thể được tạo trực tiếp với sự trợ giúp của ID và lớp thuộc tính. Đối với ID, biểu thức CSS được biểu thị bằng # theo sau là ID [ #. Đối với lớp, biểu thức CSS được đại diện bởi. tiếp theo là lớp [.]. XPath không có bất kỳ tính năng như thế này.

  • Biểu thức XPath được biểu thị bằng [// tagName [@Attribution = 'value']. Biểu thức CSS là đàn áp được biểu thị bằng [tagName [usult = 'value'].

  • Có hai loại XPath - Tuyệt đối và tương đối. Nhưng CSS không có loại như vậy.

Thí dụ

Thực hiện mã với CSS.

from selenium import webdriver
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then #invoke actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://www.tutorialspoint.com/index.htm")
#to refresh the browser
driver.refresh()
# identifying the edit box with the help of css driver. find_element_by_css_selector("input[class='gsc-input']").
send_keys("Selenium")
#to close the browser
driver.close()

Thực hiện mã với XPath

from selenium import webdriver
#browser exposes an executable file
#Through Selenium test we will invoke the executable file which will then #invoke actual browser
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
# to maximize the browser window
driver.maximize_window()
#get method to launch the URL
driver.get("https://www.tutorialspoint.com/index.htm")
#to refresh the browser
driver.refresh()
# identifying the edit box with the help of xpath
driver. find_element_by_xpath("//input[@class='gsc-input']").
send_keys("Selenium")
#to close the browser
driver.close()

Hướng dẫn why xpath is preferred over css? - tại sao xpath được ưa thích hơn css?

Cập nhật vào ngày 29 tháng 1-2020 07:38:10

  • Câu hỏi và câu trả lời liên quan
  • Sự khác biệt giữa readline () và readlines () trong selen với python là gì?
  • Sự khác biệt chính giữa bộ chọn XPath và CSS trong selenium là gì?
  • Sự khác biệt giữa sự chờ đợi ngầm và rõ ràng trong selen với Python là gì?
  • Sự khác biệt giữa các phương thức đóng () và thoát () trong selen với python là gì?
  • Sự khác biệt giữa các phương thức switch_to_default_content () và switch_to.parent_frame () trong selenium với python là gì?
  • Sự khác biệt giữa các phương thức current_window_handle và window_handles trong selenium với python là gì?
  • Xpath trong selen với python là gì?
  • Sự khác biệt giữa Xpath tương đối và tuyệt đối trong selenium là gì?
  • Xpath trong selen là gì?
  • Sự khác biệt giữa các mô -đun Python của JSON và SimpleJson là gì?
  • Sự khác biệt giữa selen và dưa chuột
  • Sự khác biệt và điểm tương đồng giữa các bộ dữ liệu và danh sách trong Python là gì?
  • Sự khác biệt giữa hình ba chiều và nhiếp ảnh là gì?
  • Sự khác biệt giữa C ++ và Java là gì?
  • Sự khác biệt giữa C và Java là gì?

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. 

  • Sự kết luận

Xpath hay CSS nào là tốt nhất?

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

Xpath hay CSS nào là tốt nhất?

CSS có hiệu suất và tốc độ tốt hơn XPath. XPath cho phép nhận dạng với sự trợ giúp của văn bản có thể nhìn thấy xuất hiện trên màn hình với chức năng trợ giúp của văn bản (). CSS không có tính năng này. CSS tùy chỉnh có thể được tạo trực tiếp với sự trợ giúp của ID và lớp thuộc tính.. Xpath allows identification with the help of visible text appearing on screen with the help of text() function. Css does not have this feature. Customized css can be created directly with the help of attributes id and class.

Tại sao XPath được ưa thích?

XPath là trình định vị phổ biến nhất trong selenium và thực hiện truyền tải thông qua các phần tử và thuộc tính DOM để xác định một đối tượng.Một XPath được thể hiện bằng hai cách cụ thể là '/' và '//'.Một dấu gạch chéo đơn có nghĩa là con đường tuyệt đối.Ở đây XPath đi qua trực tiếp từ cha mẹ sang con ở Dom.performs traversal through DOM elements and attributes to identify an object. An xpath is represented by two ways namely '/ 'and '// '. A forward single slash means absolute path. Here xpath traverses direct from parent to child in DOM.

Tại sao sử dụng XPath không phải 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.

Bộ định vị nào nhanh hơn trong Selenium CSS hoặc XPath?

Tác giả |Huấn luyện viên tự động hóa thử nghiệm | Theo bài viết này về phương tiện: "Trình định vị nào nhanh hơn trong việc xác định các yếu tố trong selen?"ID, Name, CSS, XPath".