Jak zweryfikować podpowiedź w Selenium Sterownik sieciowy

Podpowiedź w Selenium

A Podpowiedź w Selenium to tekst, który pojawia się po najechaniu myszką na obiekt na stronie internetowej. Obiektem może być łącze, obraz, przycisk, obszar tekstowy itp. Tekst podpowiedzi często podaje więcej informacji o obiekcie, na którym użytkownik najedzie kursorem myszy.

Etykietki narzędzi były tradycyjnie implementowane jako atrybut „tytułu” elementu. Wartość tego atrybutu była wyświetlana jako podpowiedź po najechaniu myszką. Jest to tekst statyczny zawierający informacje o elemencie bez stylizacji.

Obecnie dostępnych jest wiele wtyczek umożliwiających implementację podpowiedzi. Zaawansowane podpowiedzi ze stylizacją, renderowaniem, obrazami i linkami są wdrażane przy użyciu JavaWtyczki skryptowe/JQuery lub korzystanie z 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”) elementu WebElement. Wartość zwrócona przez tę metodę (która jest tekstem podpowiedzi) jest porównywana z wartością oczekiwaną w celu weryfikacji.
  • W przypadku innych form implementacji podpowiedzi będziemy musieli użyć „API zaawansowanych interakcji użytkownika” dostarczonego przez sterownik sieciowy, aby utworzyć efekt najechania myszą, a następnie pobrać podpowiedź dla elementu.

Krótki opis interfejsu API zaawansowanych interakcji użytkownika

Advanced User Interactions API udostępnia interfejs API umożliwiający wykonywanie działań użytkownika, takich jak przeciąganie i upuszczanie, najeżdżanie kursorem, wybieranie wielokrotne, naciśnięcie i zwolnienie klawisza oraz inne czynności wykonywane na stronie internetowej za pomocą klawiatury lub myszy.

Możesz to polecić link Więcej szczegółów na temat API znajdziesz tutaj.

Zobaczmy, jak użyć kilku klas i metod, których potrzebowalibyśmy do przesunięcia elementu suwaka o przesunięcie.

Krok 1) Aby móc korzystać z API, konieczne jest zaimportowanie następujących pakietów/klas:

Zaawansowane API interakcji użytkownika

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

Obiekt sterownika jest dostarczany jako parametr jego konstruktora.

Zaawansowane API interakcji użytkownika

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

Zaawansowane API interakcji użytkownika

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

Patrz: link by uzyskać więcej szczegółów.

Jak zweryfikować (obsługiwać) podpowiedź w Selenium

Zobaczmy demonstrację dostępu i weryfikacji podpowiedzi w prostym scenariuszu

  • Scenariusz 1: Podpowiedź została zaimplementowana przy użyciu atrybutu „tytuł”.
  • Scenariusz 2: Podpowiedź została zaimplementowana przy użyciu wtyczki jQuery.

Scenariusz 1: atrybut HTML „title”.

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

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

Atrybut „tytuł” ​​HTML

Aby to zrobić, najpierw znajdziemy element, pobierzemy jego atrybut „title” i zweryfikujemy go za pomocą oczekiwanego tekstu podpowiedzi.

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

Atrybut „tytuł” ​​HTML

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 = "https://demo.guru99.com/test/social-icon.html";					
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");					
        WebDriver driver = new ChromeDriver();					
        driver.get(baseUrl);					
        String expectedTooltip = "Github";	
        
        // Find the Github icon at the top right of the header		
        WebElement github = driver.findElement(By.xpath(".//*[@class='soc-ico show-round']/a[4]"));	
        
        //get the value of the "title" attribute of the github icon		
        String actualTooltip = github.getAttribute("title");	
        
        //Assert the tooltip's value is as expected 		
        System.out.println("Actual Title of Tool Tip"+actualTooltip);							
        if(actualTooltip.equals(expectedTooltip)) {							
            System.out.println("Test Case Passed");					
        }		
        driver.close();			
   }		
}		

Wyjaśnienie kodu

  1. Znajdź element WebElement reprezentujący ikonę „github”.
  2. Pobierz jego atrybut „title” za pomocą metody getAttribute().
  3. Porównaj wartość z oczekiwaną wartością podpowiedzi.

Scenariusz 2: wtyczka JQuery

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

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

Na potrzeby naszej demonstracji rozważmy sposób implementacji podpowiedzi „jQuery Tools Tooltip”.

Tutaj, w adresie URL – https://demo.guru99.com/test/tooltip.html możesz zobaczyć demo, w którym po najechaniu myszką na „Pobierz teraz” pojawia się zaawansowana podpowiedź z obrazem, tłem objaśnienia, tabelą i linkiem w środku, który można kliknąć.

Wtyczka JQuery

Jeśli spojrzysz na poniższe źródło, zobaczysz, że znacznik div reprezentujący podpowiedź jest zawsze obecny obok znacznika łącza „Pobierz teraz”. Jednak kod znajdujący się w poniższym znaczniku skryptu kontroluje, kiedy ma się ono wyświetlać.

Wtyczka JQuery

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

Najpierw znajdziemy WebElement odpowiadający „Pobierz teraz”. Następnie, korzystając z interfejsu API Interactions, przejdziemy do elementu (najechanie myszką). Następnie znajdziemy WebElement odpowiadający linkowi wewnątrz wyświetlanej podpowiedzi i zweryfikujemy go pod kątem oczekiwanego tekstu.

Wtyczka JQuery

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 = "https://demo.guru99.com/test/tooltip.html";					
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");	
        
        WebDriver driver = new ChromeDriver();					
        String expectedTooltip = "What's new in 3.2";					
        driver.get(baseUrl);					
        		
        WebElement download = driver.findElement(By.xpath(".//*[@id='download_now']"));							
        Actions builder = new Actions (driver);							

        builder.clickAndHold().moveToElement(download);					
        builder.moveToElement(download).build().perform(); 	
        
        WebElement toolTipElement = driver.findElement(By.xpath(".//*[@class='box']/div/a"));							
        String actualTooltip = toolTipElement.getText();			
        
        System.out.println("Actual Title of Tool Tip  "+actualTooltip);							
        if(actualTooltip.equals(expectedTooltip)) {							
            System.out.println("Test Case Passed");					
        }		
        driver.close();			
   }		
}		

Objaśnienie kodu

  1. Znajdź element WebElement odpowiadający elementowi „pobierz teraz”, na który najedziemy myszką.
  2. Korzystając z interfejsu API interakcji, najedź myszką na opcję „Pobierz teraz”.
  3. Zakładając, że podpowiedź została wyświetlona, ​​znajdź WebElement odpowiadający linkowi wewnątrz podpowiedzi, tj. znacznikowi „a”.
  4. Zweryfikuj tekst podpowiedzi łącza pobrany za pomocą metody getText() z oczekiwaną wartością, którą przechowujemy w „expectedToolTip”

Podsumowanie

W tym samouczku nauczyłeś się, jak uzyskać dostęp do podpowiedzi za pomocą Selenium Sterownik sieciowy.

Etykietki narzędzi są implementowane na różne sposoby –

  • Podstawowa implementacja opiera się na atrybucie HTML „title”. getAttribute(title) pobiera wartość podpowiedzi.
  • Inne implementacje podpowiedzi, takie jak JQuery i podpowiedzi CSS, wymagają interfejsu API interakcji, aby utworzyć efekt najechania myszą

Zaawansowane API interakcji użytkownika–

  • moveToElement(element) klasy Actions służy do najechania myszką na element.
  • Metoda Build() klasy Actions buduje sekwencję działań użytkownika w obiekcie Action.
  • Perform() klasy Action wykonuje całą sekwencję działań użytkownika na raz.

Aby zweryfikować podpowiedź, musimy najpierw najechać myszką na element, następnie znaleźć element odpowiadający podpowiedzi i uzyskać jego tekst lub inne wartości w celu sprawdzenia ich zgodności z oczekiwanymi wartościami.