Jak zweryfikować etykietę narzędzi za pomocą Selenium WebDriver

Spisie treści:

Anonim

Etykietka w Selenium

Tooltip w Selen jest tekst, który pojawia się, gdy najechania kursorem myszy nad obiektem na stronie internetowej. Obiekt może być łączem, obrazem, przyciskiem, obszarem tekstowym itp. Tekst podpowiedzi często zawiera więcej informacji o obiekcie, nad którym użytkownik umieścił kursor myszy.

Etykietki narzędzi były tradycyjnie implementowane jako atrybut „tytuł” ​​elementu. Wartość tego atrybutu była wyświetlana jako podpowiedź po najechaniu myszą. To jest tekst statyczny, podający informacje o elemencie bez stylów.

Obecnie dostępnych jest wiele wtyczek do wdrażania „wskazówek dotyczących narzędzi”. Zaawansowane podpowiedzi ze stylizacją, renderowaniem, obrazami i linkami są wdrażane za pomocą wtyczek JavaScript / JQuery lub przy użyciu podpowiedzi CSS.

  • Aby uzyskać dostęp lub zweryfikować statyczne podpowiedzi, które są zaimplementowane przy użyciu atrybutu HTML "title", możemy po prostu użyć metody getAttribute ("title") obiektu WebElement. Zwracana wartość tej metody (która jest tekstem podpowiedzi) jest porównywana z oczekiwaną wartością do weryfikacji.
  • W przypadku innych form implementacji podpowiedzi będziemy musieli użyć „Zaawansowanego interfejsu API interakcji użytkownika” dostarczanego przez sterownik sieciowy, aby utworzyć efekt najechania myszą, a następnie pobrać etykietkę elementu.

Krótki opis interfejsu API zaawansowanych interakcji użytkownika:

Interfejs API Advanced User Interactions zapewnia interfejs API dla działań użytkownika, takich jak przeciąganie i upuszczanie, najechanie kursorem, wielokrotne wybieranie, naciśnięcie i zwolnienie klawisza oraz inne czynności wykonywane za pomocą klawiatury lub myszy na stronie internetowej.

Możesz skorzystać z tego linku, aby uzyskać więcej informacji na temat interfejsu API.

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

Tutaj zobaczmy, jak użyć kilku klas i metod, które musielibyśmy przesunąć element suwaka o przesunięcie.

Krok 1) Aby korzystać z API, należy zaimportować następujące pakiety / klasy:

Krok 2) Utwórz obiekt klasy „Actions” i zbuduj Sekwencję działań użytkownika. Klasa Actions służy do budowania sekwencji działań użytkownika, takich jak moveToElement (), dragAndDrop () itp. Różne metody związane z działaniami użytkownika są udostępniane przez API.

Obiekt sterownika jest dostarczany jako parametr do jego konstruktora.

Krok 3) Utwórz obiekt akcji za pomocą metody build () klasy „Actions”. Wywołaj metodę perform (), aby wykonać wszystkie akcje zbudowane przez obiekt Actions (tutaj konstruktor).

Widzieliśmy, jak korzystać z niektórych metod akcji użytkownika udostępnianych przez API - clickAndHold (element), moveByOffset (10,0), release (). API udostępnia wiele takich metod.

Aby uzyskać więcej informacji, skorzystaj z łącza.

Jak uzyskać tekst podpowiedzi w Selenium Webdriver

Zobaczmy demonstrację uzyskiwania dostępu i weryfikowania wskazówek narzędzi w prostym scenariuszu

  • Scenariusz 1: etykieta narzędzi jest implementowana przy użyciu atrybutu „tytuł”
  • Scenariusz 2: Etykietka narzędzi jest implementowana za pomocą wtyczki jQuery.

Scenariusz 1: atrybut HTML „tytuł”

W tym przypadku weźmy przykładową witrynę - http://demo.guru99.com/test/social-icon.html.

Spróbujemy zweryfikować podpowiedź ikony „github” w prawym górnym rogu strony.

Aby to zrobić, najpierw znajdziemy element, pobierzemy jego atrybut „tytuł” ​​i zweryfikujemy z oczekiwanym tekstem podpowiedzi.

Ponieważ zakładamy, że podpowiedź znajduje się w atrybucie „title”, nie automatyzujemy nawet efektu najechania myszą, ale po prostu pobieramy wartość atrybutu za pomocą metody „getAttribute ()”.

Oto kod

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;public class ToolTip {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Sterownik WebDriver = nowy ChromeDriver ();driver.get (baseUrl);String spodziewanyTooltip = "Github";// Znajdź ikonę Github w prawym górnym rogu nagłówkaWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// pobierz wartość atrybutu „title” ikony githubString currentTooltip = github.getAttribute ("tytuł");// Potwierdź, że wartość podpowiedzi jest zgodna z oczekiwaniamiSystem.out.println ("Rzeczywisty tytuł podpowiedzi" + rzeczywista podpowiedź);if (tualTooltip.equals (oczekiwanoTooltip)) {System.out.println ("Przypadek testowy zakończony pomyślnie");}driver.close ();}}

Wyjaśnienie kodu

  1. Znajdź element WebElement reprezentujący ikonę „github”.
  2. Uzyskaj atrybut „title” za pomocą metody getAttribute ().
  3. Przypisz wartość do oczekiwanej wartości etykiety narzędzia.

Scenariusz 2: wtyczka JQuery:

Dostępnych jest wiele wtyczek JQuery do implementacji podpowiedzi, a każda z nich ma nieco inną formę implementacji.

Niektóre wtyczki oczekują, że HTML podpowiedzi będzie obecny przez cały czas obok elementu, do którego ma zastosowanie, podczas gdy inne tworzą dynamiczny tag „div”, który pojawia się w locie po najechaniu kursorem na element.

Na potrzeby naszej demonstracji rozważmy sposób implementacji etykietki narzędzi jQuery.

Tutaj w adresie URL - http://demo.guru99.com/test/tooltip.html możesz zobaczyć demo, w którym po najechaniu myszą na „Pobierz teraz” otrzymujemy zaawansowaną podpowiedź z obrazem, tłem objaśnienia, tabelą i link w nim, który można kliknąć.

Jeśli spojrzysz na źródło poniżej, zobaczysz, że znacznik DIV reprezentujący etykietkę jest zawsze obecny obok tagu linku „Pobierz teraz”. Ale kod wewnątrz tagu skryptu poniżej kontroluje, kiedy musi się wyskoczyć.

Spróbujmy zweryfikować tylko tekst linku w podpowiedzi do naszej demonstracji tutaj.

Najpierw znajdziemy WebElement odpowiadający opcji „Pobierz teraz”. Następnie za pomocą interfejsu Interactions API przejdziemy do elementu (najechanie myszą). Następnie znajdziemy element WebElement, który odpowiada linkowi w wyświetlonej etykiecie narzędzia i zweryfikujemy go z oczekiwanym tekstem.

Oto kod

import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Actions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import 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");Sterownik WebDriver = nowy ChromeDriver ();String spodziewanyTooltip = "Co nowego w 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Kreator akcji = nowy Akcje (sterownik);builder.clickAndHold (). moveToElement (pobierz);builder.moveToElement (pobierz) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));String currentTooltip = toolTipElement.getText ();System.out.println ("Rzeczywisty tytuł podpowiedzi" + rzeczywista podpowiedź);if (tualTooltip.equals (oczekiwanoTooltip)) {System.out.println ("Przypadek testowy zakończony pomyślnie");}driver.close ();}}

Objaśnienie kodu

  1. Znajdź element WebElement, który odpowiada elementowi „pobierz teraz”, na który najedziemy myszą.
  2. Korzystając z interfejsu API interakcji, najedź myszą na opcję „Pobierz teraz”.
  3. Zakładając, że wyświetlona jest podpowiedź, znajdź element WebElement, który odpowiada linkowi wewnątrz podpowiedzi, tj. Znacznik „a”.
  4. Sprawdź, czy tekst podpowiedzi odsyłacza pobrany za pomocą metody getText () porównuje z oczekiwaną wartością, którą zapisaliśmy w „spodziewanymToolTip”

Podsumowanie:

W tym samouczku nauczyłeś się, jak uzyskać dostęp do etykiet narzędzi za pomocą sterownika Selenium Web.

  • Wskazówki dotyczące narzędzi są wdrażane na różne sposoby -
    • Podstawowa implementacja jest oparta na atrybucie „title” HTML. getAttribute (title) pobiera wartość podpowiedzi.
    • Inne implementacje podpowiedzi, takie jak JQuery, podpowiedzi CSS wymagają interfejsu API interakcji, aby utworzyć efekt najechania myszą
  • Zaawansowany interfejs API interakcji użytkownika
    • moveToElement (element) klasy Actions służy do najechania myszą na element.
    • Metoda Build () klasy Actions buduje sekwencję działań użytkownika w obiekcie Action.
    • Perform () klasy Action wykonuje jednocześnie całą sekwencję działań użytkownika.
  • Aby zweryfikować podpowiedź, musimy najpierw najechać kursorem myszy na element, a następnie znaleźć element odpowiadający podpowiedzi i pobrać jego tekst lub inne wartości, aby zweryfikować je z wartościami oczekiwanymi.