Hướng dẫn which one is faster css or xpath? - cái nào nhanh hơn css hoặc xpath?


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

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 which one is faster css or xpath? - cái nào nhanh hơn css hoặc xpath?

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ì?

Trận chiến Xpath vs CSS là một cuộc chiến mà mọi người tiếp cận khác nhau, chủ yếu là vì sở thích thay vì các ý nghĩa khác nhau của việc sử dụng một trong các tùy chọn. Nếu bạn đã từng phải chọn giữa việc sử dụng các bộ chọn XPath và CSS, rất có thể môi trường bạn đang làm việc có liên quan nhiều đến sự lựa chọn của bạn hơn là sự khác biệt thực tế giữa các tùy chọn. Các trường hợp bạn cân nhắc các tùy chọn bao gồm khi bạn muốn cạo nội dung từ một trang web trực tiếp hoặc bạn đang tiến hành các thử nghiệm tự động ở mặt trước của ứng dụng.

Bài viết này sẽ giải quyết các khác biệt khác nhau giữa XPath và CSS. Trên đường đi, chúng tôi sẽ nói về những gì mỗi tùy chọn mang đến cho bảng. Đến cuối bài viết này, tùy chọn nào bạn nên sử dụng có khả năng trở nên rõ ràng với bạn ngay cả khi bạn không xem xét khả năng tương thích của nó với trường hợp sử dụng của bạn. Bạn cũng sẽ tìm hiểu lý do tại sao cái này hoặc cái kia có thể là một lựa chọn tốt hơn để sử dụng khi kiểm tra các ứng dụng của bạn.

Chu kỳ làm ứng dụng đi một cái gì đó như thế này; Mã, kiểm tra, triển khai, nhận phản hồi, vá lỗi và làm lại từ đầu. Đôi khi có những người khác nhau ở mọi giai đoạn, khiến mọi thứ trở nên phức tạp. Và bỏ qua bất kỳ giai đoạn nào có thể làm cho ứng dụng có khả năng sử dụng. Thử nghiệm cũng quan trọng như mọi giai đoạn khác. Nó ở giai đoạn thử nghiệm mà bạn có thể bắt đầu nhìn vào bộ chọn XPath vs CSS.

Trước khi chúng ta đi sâu hơn vào logic của sự lựa chọn, hãy để xác định mỗi bên và tìm hiểu những ưu và nhược điểm tương ứng của họ.

XPath là gì?

XPath là viết tắt của đường dẫn XML. Nó có một ngôn ngữ truy vấn giúp xác định các yếu tố từ tài liệu XML. Nó sử dụng các biểu thức điều hướng vào một tài liệu XML theo cách có thể được theo dõi từ đầu đến phần tử dự định như hình thành một đường dẫn từ đầu. Chúng tôi sẽ thảo luận về cú pháp ở độ sâu lớn hơn trong thời gian ngắn.

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

  • XPath cho phép bạn điều hướng DOM khi tìm kiếm các yếu tố để kiểm tra hoặc cạo.
  • Nó tương thích với các trình duyệt cũ (hoặc tại thời điểm xuất bản, bao gồm các phiên bản cũ hơn của Internet Explorer, mà một số tập đoàn vẫn sử dụng).
  • Tạo trong XPath linh hoạt hơn trong bộ chọn CSS.
  • Khi bạn không biết tên của một yếu tố, bạn có thể sử dụng có chứa để tìm kiếm các trận đấu có thể.contains to search for possible matches.

Cách tạo Xpath

XML PATH Cú pháp sử dụng các luồng sơ đồ cây để xác định vị trí các phần tử trên trang HTML. Hãy xem xét phần tử biểu mẫu trong đánh dấu trang tìm kiếm bên dưới.

Hướng dẫn which one is faster css or xpath? - cái nào nhanh hơn css hoặc xpath?

Xpath đầy đủ vào nút tìm kiếm bên trong biểu mẫu sẽ trông như thế này:

/html/body/main-view//section/startpage-component//div/main/search-box-component//div/form/div/buttonhtml/body/main-view//section/startpage-component//div/main/search-box-component//div/form/div/button

Như đã thấy trong toàn bộ XPath, tài liệu được chia thành các yếu tố về cơ bản đại diện cho bộ xương của nó. Đi từ trên xuống dưới trong tài liệu kết quả và liệt kê mọi nút, cho đến khi bạn đạt được phần tử mong muốn, là thứ trở thành XPath. Ở đây, một cách ngắn hơn để viết này.

//*[@id="scroll-container"]/main/search-box-component//div/form/div/button

Và ở đây, một bảng toàn diện cho cú pháp của cả bộ chọn XPath và CSS;

Bây giờ, bạn đã có cảm giác về Xpath là gì và những gì nó có thể làm, hãy để Lôi chuyển sang bộ chọn CSS.

Bộ chọn CSS là gì?

Hầu hết các trang HTML đều được tạo kiểu bằng cách sử dụng các lớp bảng kiểu xếp tầng, còn được gọi là CSS. Xác định các yếu tố khác nhau trên một trang dựa trên các kiểu yêu cầu bạn chọn lớp nó rơi vào. Xem xét bộ chọn CSS là một phần của bảng kiểu cho phép bạn chọn loại nội dung để kiểm tra, chỉnh sửa hoặc sao chép. Các bộ chọn CSS xác định các yếu tố khác nhau trong DOM và chúng ảnh hưởng hoặc kết nối với các phần này của giao diện.

Bộ chọn CSS có nhiều loại. Điều này chủ yếu là do không giống như xây dựng cây hoặc bản đồ của tùy chọn XPath, các bộ chọn có tên và danh mục thực tế. Dưới đây là một số loại.

  • Các bộ chọn đơn giản: Những tìm kiếm cho các yếu tố dựa trên lớp hoặc ID của họ. These search for elements based on their class or ID.
  • Bộ chọn thuộc tính: Những phần tử nhận này dựa trên các giá trị được gán cho chúng. Tôi sẽ cung cấp một số ví dụ sau trong bài viết này. These pick up elements based on values assigned to them. I’ll provide some examples later on in this article.
  • Các bộ chọn giả: Trong các tình huống trong đó các trạng thái của các yếu tố được khai báo với CSS, chẳng hạn như các hộp kiểm hoặc các thuộc tính trên hover, chúng được sử dụng. In situations where the states of elements are declared with CSS, such as check boxes or on-hover attributes, these come into use.

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

  • Nó nhanh hơn Xpath.
  • Nó dễ dàng hơn nhiều để học và thực hiện.
  • Bạn có cơ hội tìm thấy các yếu tố của bạn cao.
  • Nó tương thích với hầu hết các trình duyệt cho đến nay.

Mở rộng phạm vi kiểm tra của bạn

Tác giả nhanh chóng và linh hoạt của các bài kiểm tra đầu cuối do AI cung cấp-được xây dựng cho quy mô.

Bắt đầu thử nghiệm miễn phí

Cách tạo bộ chọn CSS

Hãy để sử dụng cùng một hình ảnh mà chúng tôi đã làm trước đó, với một trang tìm kiếm được hiển thị. Bạn có thể làm điều này trên bất kỳ trang web nào bằng cách nhấp chuột phải và chọn phần tử kiểm tra. Bạn sẽ có thể tạo bộ chọn CSS giống như chúng tôi đã làm với XPath.Inspect Element. You should be able to create the CSS selector just as we did with the XPath.

Trong trường hợp này, bộ chọn CSS sẽ trông như thế này.

div>form>div>button>form>div>button

Lưu ý mức độ dễ dàng hơn khi đọc bộ chọn CSS so với XPath. Bạn có thể đọc điều này là, nút Nút là một yếu tố con của div bên trong một biểu mẫu, chính nó nằm trong bộ chọn loại div.

Để bao gồm đầy đủ những gì có thể có với bộ chọn thuộc tính CSS, hãy để xem xét một ví dụ đánh dấu cụ thể hơn.

<ul>

& nbsp; & nbsp; & nbsp; & nbsp;<li><ahref="maps.google.com">Google Maps Sub-domain</a></li>

& nbsp; & nbsp; & nbsp; & nbsp; liên kết dịch vụ thư<li><a href="mail.icloud.com">Link toiCloud Mail Services</a></li>

& nbsp; & nbsp; & nbsp; & nbsp; opera mail<li><ahref="mail.opera.com"> Opera Mail</a></li>

& nbsp; & nbsp; & nbsp; & nbsp; dịch vụ gmail<li><ahref="mail.google.com">Gmail Services</a></li>

</ul>

& nbsp; & nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp; & nbsp; liên kết dịch vụ thư[href^="some value here"]

& nbsp; & nbsp; & nbsp; & nbsp; opera maila> element that includes “mail” as a value. In that case, you’d use the * sign after the href key. This would give you:

& nbsp; & nbsp; & nbsp; & nbsp; dịch vụ gmailmail as the sub-domain.

Bộ chọn áp dụng để tìm các yếu tố cụ thể trong ví dụ trên sẽ trông như thế này.* with a $. You can filter out entries that start with a certain value by using the ^ sign. There are plenty of such signs depending on the rules you’re using for selection.

A [href^= "Một số giá trị ở đây"]

Chẳng hạn, hãy để nói rằng bạn muốn chọn ra phần tử bao gồm cả thư thư & nbsp; làm giá trị. Trong trường hợp đó, bạn đã sử dụng dấu * sau khóa HREF. Điều này sẽ cung cấp cho bạn:

Điều này trả về tất cả các yếu tố nhưng nguyên tố đầu tiên vì nó không có thư là tên miền phụ.

Thế còn các trường hợp mà bạn muốn chọn tất cả các yếu tố kết thúc trong một giá trị nhất định? Sau đó, bạn thay thế * bằng $. Bạn có thể lọc các mục bắt đầu với một giá trị nhất định bằng cách sử dụng ^ dấu. Có rất nhiều dấu hiệu như vậy tùy thuộc vào các quy tắc bạn sử dụng để lựa chọn.

Phải có một cách tốt hơn để thực hiện tự động hóa thử nghiệm! bạn có thể nói. Như với hầu hết các quy trình lặp đi lặp lại, trí tuệ nhân tạo đang bắt đầu ảnh hưởng đến cả hai tùy chọn. Các dịch vụ như Testim đã tìm ra những cách nhanh hơn và trực quan hơn để chạy các bài kiểm tra trên các yếu tố trên DOM.

Trong quá khứ, bạn phải tạo các đường dẫn hoặc bộ chọn chính xác ở phía sau bằng cách chải qua tất cả các đánh dấu. Bây giờ, các dịch vụ như Testim đảm nhận điều đó cho bạn. Công ty sử dụng trí tuệ nhân tạo và thuật toán để xem xét toàn bộ DOM và xác định các yếu tố bằng nhiều thuộc tính. Testim sẽ xem xét lớp, cha mẹ/con, màu, văn bản, loại, id hoặc các thuộc tính khác và tìm mục để bạn chạy các bài kiểm tra của bạn. Sử dụng một dịch vụ như vậy ngăn chặn sự tập trung của bạn không tập trung vào bộ chọn XPath vs CSS. Thay vào đó, bạn có thể tập trung nhiều hơn vào kết quả.

Ngoài ra, nếu bạn sử dụng Testim, làm việc ở mặt trước khi tạo các thử nghiệm tự động cũng giúp bạn dễ dàng triển khai sản phẩm nhanh hơn. Bạn có thể sử dụng ít kỹ năng quan trọng hơn để lặp lại giai đoạn thử nghiệm và phản hồi của vòng đời phát triển sản phẩm.

Đọc gì tiếp theo

Hiểu XPath

Tại sao CSS nhanh hơn 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 allows only one directional flow which means the traversal is from parent to child only. Xpath is slower in terms of performance and speed. Css has better performance and speed than xpath.

Cái nào nhanh hơn giữa CSS hoặc XPath?

Ưu điểm của việc sử dụng Bộ chọn CSS CSS là lựa chọn duy nhất trong trường hợp này.Các trình duyệt cũ như Internet Explorer không hỗ trợ CSS đầy đủ.Tuy nhiên, ngày nay, trình duyệt hỗ trợ bộ chọn CSS đầy đủ;Vì vậy, khả năng tương thích sẽ không phải là một vấn đề.Bộ chọn CSS cũng nhanh hơn XPath.CSS Selectors are also faster than XPath.

CSS hoặc XPath nào nhanh hơn trong selen?

Về hiệu suất, CSS tốt hơn và nhanh hơn, trong khi XPath ở phía chậm hơn.Một XPath có thể có hai loại - tuyệt đối bắt đầu từ nút gốc và tương đối không cần phải bắt đầu từ gốc.Để đi qua phần tử thứ n, chúng ta phải đề cập đến [n] trong XPath, trong đó n là số chỉ mục.css is better and faster, while xpath is on a slower side. An xpath can be of two types – absolute which starts from the root node and relative does not require to be started from the root. To traverse to the nth element, we have to mention [n] in the xpath, where n is the index number.

Tại sao CSS là công cụ định vị nhanh nhất?

Một lời giải thích tôi có thể nhận được là tôi đã thêm nhiều thuộc tính ID vào các yếu tố web (đó là một thông lệ khá phổ biến).Công cụ định vị CSS là nhanh nhất, tôi nghĩ điều này là do tối ưu hóa của Chrome để kết xuất.