Cách xác minh chú giải công cụ bằng Selenium WebDriver

Mục lục:

Anonim

Chú giải công cụ trong Selenium

Một Tooltip trong Selenium là một văn bản xuất hiện khi một dềnh chuột lên một đối tượng trên một trang web. Đối tượng có thể là một liên kết, một hình ảnh, một nút, một vùng văn bản,… Văn bản chú giải công cụ thường cung cấp thêm thông tin về đối tượng mà người dùng di chuột qua con trỏ chuột.

Chú giải công cụ theo truyền thống được triển khai dưới dạng thuộc tính 'tiêu đề' cho một phần tử. Giá trị của thuộc tính này được hiển thị dưới dạng chú giải công cụ khi di chuột. Đây là một văn bản tĩnh cung cấp thông tin của phần tử không có kiểu dáng.

Hiện nay, có rất nhiều plugin có sẵn để triển khai 'mẹo công cụ'. Chú giải công cụ nâng cao với tạo kiểu, kết xuất, hình ảnh và liên kết đang được triển khai bằng cách sử dụng các plugin JavaScript / JQuery hoặc sử dụng Chú giải công cụ CSS.

  • Để truy cập hoặc xác minh các chú giải công cụ tĩnh được triển khai bằng thuộc tính HTML "title", chúng ta có thể chỉ cần sử dụng phương thức getAttribute ("title") của WebElement. Giá trị trả về của phương pháp này (là văn bản chú giải công cụ) được so sánh với giá trị mong đợi để xác minh.
  • Đối với các dạng triển khai chú giải công cụ khác, chúng tôi sẽ phải sử dụng "API tương tác người dùng nâng cao" do Trình điều khiển web cung cấp để tạo hiệu ứng di chuột và sau đó truy xuất chú giải công cụ cho phần tử.

Tóm tắt về API tương tác người dùng nâng cao:

API tương tác người dùng nâng cao cung cấp API cho các hành động của người dùng như kéo và thả, di chuột, chọn nhiều lần, nhấn và thả phím và các hành động khác bằng bàn phím hoặc chuột trên trang web.

Bạn có thể tham khảo liên kết này để biết thêm chi tiết về API.

https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interaction/Actions.html

Ở đây, chúng ta hãy xem cách sử dụng một vài lớp và phương thức mà chúng ta sẽ cần để di chuyển một phần tử thanh trượt bằng một phần tử bù đắp.

Bước 1) Để sử dụng API, các gói / lớp sau cần được nhập:

Bước 2) Tạo một đối tượng của lớp "Hành động" và xây dựng Chuỗi hành động của người dùng. Lớp Actions được sử dụng để xây dựng chuỗi các hành động của người dùng như moveToElement (), dragAndDrop (), v.v. Các phương thức khác nhau liên quan đến hành động của người dùng được cung cấp bởi API.

Đối tượng trình điều khiển được cung cấp như một tham số cho phương thức khởi tạo của nó.

Bước 3) Tạo một đối tượng hành động bằng cách sử dụng phương thức build () của lớp "Hành động". Gọi phương thức Perform () để thực thi tất cả các hành động được xây dựng bởi đối tượng Hành động (trình tạo ở đây).

Chúng ta đã thấy cách sử dụng một số phương thức Hành động của người dùng do API cung cấp - clickAndHold (phần tử), moveByOffset (10,0), release (). API cung cấp nhiều phương pháp như vậy.

Tham khảo liên kết để biết thêm chi tiết.

Cách lấy Văn bản chú giải công cụ trong Selenium Webdriver

Chúng ta hãy xem trình diễn về cách truy cập và xác minh các mẹo công cụ trong tình huống đơn giản

  • Tình huống 1: Chú giải công cụ được triển khai bằng thuộc tính "title"
  • Tình huống 2: Chú giải công cụ được triển khai bằng plugin jQuery.

Tình huống 1: Thuộc tính HTML 'title'

Đối với trường hợp này, hãy lấy trang web ví dụ - http://demo.guru99.com/test/social-icon.html.

Chúng tôi sẽ cố gắng xác minh chú giải công cụ của biểu tượng "github" ở trên cùng bên phải của trang.

Để làm điều đó, trước tiên chúng tôi sẽ tìm phần tử và lấy thuộc tính 'title' của nó và xác minh bằng văn bản mẹo công cụ dự kiến.

Vì chúng tôi đang giả sử mẹo công cụ nằm trong thuộc tính "title", chúng tôi thậm chí không tự động hóa hiệu ứng di chuột mà chỉ đơn giản là truy xuất giá trị của thuộc tính bằng phương thức "getAttribute ()".

Đây là mã

nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;nhập org.openqa.selenium. *;Công cụ lớp công khai Mẹo {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Trình điều khiển WebDriver = mới ChromeDriver ();driver.get (baseUrl);Chuỗi dự kiếnTooltip = "Github";// Tìm biểu tượng Github ở trên cùng bên phải của tiêu đềWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// lấy giá trị của thuộc tính "title" của biểu tượng githubChuỗi thực tếTooltip = github.getAttribute ("tiêu đề");// Khẳng định giá trị của chú giải công cụ là như mong đợiSystem.out.println ("Tiêu đề Thực tế của Mẹo Công cụ" + Chú giải công cụ thực tế);if (factTooltip.equals (mong đợiTooltip)) {System.out.println ("Đã vượt qua trường hợp kiểm tra");}trình điều khiển.close ();}}

Giải thích mã

  1. Tìm WebElement đại diện cho biểu tượng "github".
  2. Lấy thuộc tính "title" của nó bằng phương thức getAttribute ().
  3. Khẳng định giá trị so với giá trị chú giải công cụ dự kiến.

Tình huống 2: Plugin JQuery:

Có rất nhiều plugin JQuery có sẵn để triển khai các chú giải công cụ và mỗi plugin có một hình thức triển khai hơi khác nhau.

Một số plugin mong muốn HTML của chú giải công cụ luôn hiện diện bên cạnh phần tử mà chú giải công cụ có thể áp dụng trong khi các plugin khác tạo thẻ "div" động, xuất hiện nhanh khi di chuột qua phần tử.

Đối với phần trình diễn của chúng tôi, hãy xem xét cách triển khai chú giải công cụ "jQuery Tools Tooltip".

Tại đây trong URL - http://demo.guru99.com/test/tooltip.html, bạn có thể xem bản trình diễn khi di chuột qua "Tải xuống ngay bây giờ", chúng tôi nhận được chú giải công cụ nâng cao với hình ảnh, nền chú thích, bảng và một liên kết bên trong nó có thể nhấp được.

Nếu bạn nhìn vào nguồn bên dưới, bạn có thể thấy rằng thẻ div đại diện cho chú giải công cụ luôn xuất hiện bên cạnh thẻ của liên kết "Tải xuống ngay bây giờ". Tuy nhiên, mã bên trong thẻ script bên dưới sẽ kiểm soát thời điểm nó cần bật lên.

Hãy thử xác minh chỉ văn bản liên kết trong chú giải công cụ cho phần trình diễn của chúng tôi ở đây.

Đầu tiên chúng ta sẽ tìm thấy WebElement tương ứng với "Tải xuống ngay bây giờ". Sau đó, sử dụng API tương tác, chúng ta sẽ chuyển đến phần tử (di chuột). Tiếp theo, chúng tôi sẽ tìm thấy WebElement tương ứng với liên kết bên trong chú giải công cụ được hiển thị và xác minh nó với văn bản mong đợi.

Đây là mã

nhập org.openqa.selenium.interaction.Action;nhập org.openqa.selenium.interaction.Actions;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.chrome.ChromeDriver;nhập org.openqa.selenium. *;public class JqueryToolTip {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Trình điều khiển WebDriver = mới ChromeDriver ();StringvialTooltip = "Có gì mới trong 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Trình tạo hành động = Hành động mới (trình điều khiển);builder.clickAndHold (). moveToElement (tải xuống);builder.moveToElement (tải xuống) .build (). performance ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));String realTooltip = toolTipElement.getText ();System.out.println ("Tiêu đề Thực tế của Mẹo Công cụ" + Chú giải công cụ thực tế);if (factTooltip.equals (mong đợiTooltip)) {System.out.println ("Đã vượt qua trường hợp kiểm tra");}trình điều khiển.close ();}}

Giải thích mã

  1. Tìm WebElement tương ứng với phần tử "tải xuống ngay bây giờ" mà chúng ta sẽ di chuột.
  2. Sử dụng API tương tác, di chuột đến "Tải xuống ngay bây giờ".
  3. Giả sử chú giải công cụ được hiển thị, hãy tìm WebElement tương ứng với liên kết bên trong chú giải công cụ, tức là thẻ "a".
  4. Xác minh văn bản chú giải công cụ của liên kết được truy xuất bằng cách sử dụng getText () so với giá trị mong đợi mà chúng tôi đã lưu trữ trong "worthyToolTip "

Tóm lược:

Trong hướng dẫn này, bạn đã học cách truy cập Chú giải công cụ bằng trình điều khiển Web Selenium.

  • Mẹo về Công cụ được thực hiện theo những cách khác nhau -
    • Việc triển khai cơ bản dựa trên thuộc tính "title" của HTML. getAttribute (title) nhận giá trị của chú giải công cụ.
    • Việc triển khai mẹo công cụ khác như JQuery, chú giải công cụ CSS yêu cầu API tương tác để tạo hiệu ứng di chuột
  • API tương tác người dùng nâng cao
    • moveToElement (phần tử) của lớp Actions được sử dụng để di chuột qua phần tử.
    • Phương thức Build () của lớp Actions xây dựng chuỗi các hành động của người dùng thành một đối tượng Action.
    • Lớp Perform () of Action thực thi tất cả chuỗi hành động của người dùng cùng một lúc.
  • Để xác minh chú giải công cụ, trước tiên chúng ta phải di chuột qua phần tử, sau đó tìm phần tử tương ứng với đầu công cụ và lấy văn bản hoặc các giá trị khác của nó để xác minh so với các giá trị mong đợi.