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:
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.
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 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.
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()”.
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
- Znajdź element WebElement reprezentujący ikonę „github”.
- Pobierz jego atrybut „title” za pomocą metody getAttribute().
- 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ąć.
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ć.
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.
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
- Znajdź element WebElement odpowiadający elementowi „pobierz teraz”, na który najedziemy myszką.
- Korzystając z interfejsu API interakcji, najedź myszką na opcję „Pobierz teraz”.
- Zakładając, że podpowiedź została wyświetlona, znajdź WebElement odpowiadający linkowi wewnątrz podpowiedzi, tj. znacznikowi „a”.
- 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.