Az eszköztipp ellenőrzése Selenium

⚡ Okos összefoglaló

Eszköztipp ellenőrzése itt: Selenium A WebDriver két megbízható mintát kínál az eszköztipp szövegének megadására: a HTML cím attribútumának közvetlen beolvasását és az Actions API használatát a dinamikusan megjelenítő elemek fölé húzáshoz. JavaSzkript vagy jQuery eszköztippek.

  • ???? Alapelv: Az elemleírás egy szöveg, amely az egérrel való mozgatáskor jelenik meg, így az ellenőrzési stratégia attól függ, hogy a böngésző hol tárolja a szöveget a DOM-ban.
  • 🏷️ Statikus eszköztippek: HTML cím alapú eszköztippekért hívja a következőt: getAttribute("title") or getDomAttribute("title") és hasonlítsa össze a várt karakterlánccal.
  • 🖱️ Dinamikus eszköztippek: jQuery, CSS vagy bővítmény eszköztippekhez használd az Actions osztályt a következővel: moveToElement(target).build().perform() mielőtt elolvasná a tooltip elemet.
  • ⏱️ Legjobb gyakorlat: Várja meg, amíg az egérmutató fölé helyezés után láthatóvá válik az eszköztipp-tároló, majd illessze be a szöveget a következővel: getText() az elavult vagy üres beolvasások elkerülése érdekében.
  • 🚀 Selenium 4-os tipp: Pár Selenium Explicit várakozásokkal rendelkező kezelő a Thread.sleep helyett a stabil, illesztőprogram-útvonal nélküli eszköztipp-ellenőrzésekhez.

Eszköztipp ellenőrzése itt: Selenium webdriver

Eszköztipp be Selenium

A Eszköztipp be Selenium egy rövid szöveg, amely akkor jelenik meg, amikor az egérmutatót egy weboldalon lévő objektum fölé viszi. Az objektum lehet egy hivatkozás, egy kép, egy gomb vagy egy szövegterület. Az elemleírás szövege gyakran további információt nyújt a kurzor alatti elemről.

Az eszköztippeket hagyományosan az elemek „title” attribútumaként valósították meg. Az attribútum értéke eszköztippként jelent meg az egérmutató fölé helyezésekor. Ez egy statikus szöveg, amely stílus nélkül ad információt az elemről.

Manapság számos bővítmény érhető el az eszköztippek megvalósításához. A stílusokkal, rendereléssel, képekkel és linkekkel ellátott fejlett eszköztippek a következők segítségével készülnek: JavaSzkript- vagy jQuery bővítmények, vagy csak CSS-re vonatkozó eszköztippek.

  • A HTML „title” attribútumon keresztül megvalósított statikus eszköztippek eléréséhez vagy ellenőrzéséhez használja a getAttribute("title") metódus a WebElementen. A visszaadott értéket (az elemleírás szövegét) összehasonlítja a rendszer egy várható értékkel az ellenőrzés érdekében.
  • Más elemleírás-implementációkhoz használja a WebDriver által biztosított „Advanced User Interactions API”-t az egérmutató-effektus létrehozásához, majd az elem elemleírásának lekéréséhez.

Az Advanced User Interactions API rövid ismertetése

Az Advanced User Interactions API olyan felhasználói műveleteket tesz elérhetővé, mint a húzás és elengedés, az egérrel való ráhelyezés, a többszörös kijelölés, a billentyűleütés és elengedés, valamint egyéb billentyűzet- vagy egérműveletek egy weboldalon.

Erre hivatkozhat hivatalos Actions osztályhivatkozás az API-val kapcsolatos további részletekért.

Ugrás előttping Forgatókönyvekbe menően nézzük meg azokat az osztályokat és metódusokat, amelyekre szükségünk van egy csúszka elem eltolásával történő mozgatásához.

Step 1) Az API használatához importálja a következő csomagokat és osztályokat:

Advanced User Interactions API

Step 2) Hozz létre egy „Actions” osztályú objektumot, és építsd fel a felhasználói műveletek sorozatát. Az Actions osztály láncolt műveleteket épít, például a moveToElement() és a dragAndDrop(). A driver objektum paraméterként kerül átadásra a konstruktorának.

Advanced User Interactions API

Step 3) Hozz létre egy Action objektumot az „Actions” osztály build() metódusával. Hívd meg a perform() metódust a builder összes sorban álló műveletének végrehajtásához.

Advanced User Interactions API

Láttuk, hogyan használhatunk néhányat az API által biztosított felhasználói Action metódusok közül: clickAndHold(element), moveByOffset(10, 0) és release(). Az API sokkal többet is elérhetővé tesz.

Eszközleírás megvalósítása vs. Selenium Ellenőrzési megközelítés

Eszközleírás típusa Hogyan jelenik meg Selenium Megközelítés
HTML cím attribútum Magán az elemen tárolt szöveg; a böngésző az egérmutatóra kattintva megjelenik. Olvassa el a következővel: getAttribute("title") or getDomAttribute("title")Nincs szükség lebegésre.
jQuery / JS bővítmény Az egérmutató fölé mozgatásakor az elem mellett dedikált div jelenik meg. Műveletek használata moveToElement(target).perform(), várjon, majd olvassa el a tooltip elemet a következővel: getText().
Csak CSS-re vonatkozó elemleírás Pszeudoelem vagy testvér div ki-/bekapcsolása :hover. Aktiválja az egérmutatót a Műveletek menüpontban, és olvassa fel a renderelt szöveget vagy a kiszámított stílust.

Az eszköztipp ellenőrzése (kezelése) Selenium

Nézzük meg az eszköztippek elérését és ellenőrzését két gyakori forgatókönyv segítségével:

  • 1. forgatókönyv: Az eszköztipp a „title” attribútum használatával van megvalósítva.
  • 2. forgatókönyv: Az eszköztipp egy jQuery bővítménnyel van megvalósítva.

1. forgatókönyv: HTML „title” attribútum

Ebben az esetben a példaként szolgáló webhelyet használjuk https://demo.guru99.com/test/social-icon.html és ellenőrizze a „github” ikon eszköztippjét az oldal jobb felső sarkában.

HTML 'title' attribútum

Először megkeressük az elemet, majd beolvassuk a „title” attribútumát, és összehasonlítjuk a várt tooltip szöveggel.

Mivel az eszköztipp a „title” attribútumban található, az egér fölé helyezését sem automatizáljuk; egyszerűen csak a getAttribute() metódussal kérjük le az attribútum értékét.

HTML 'title' attribútum

Itt van a kód:

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]"));

        // Read the "title" attribute value of the Github icon
        String actualTooltip = github.getAttribute("title");

        // Assert that the tooltip value matches the expected one
        System.out.println("Actual Title of Tool Tip " + actualTooltip);
        if (actualTooltip.equals(expectedTooltip)) {
            System.out.println("Test Case Passed");
        }
        driver.close();
    }
}

A kód magyarázata:

  1. Keresse meg a „github” ikont képviselő WebElement elemet.
  2. Olvasd be a „title” attribútumot a getAttribute() metódussal.
  3. Értéket a várt elemleírás szövegével szemben kell állítani.

Selenium 4 tipp: Jobban szeret getDomAttribute("title") a literál HTML attribútumhoz, és legyen Selenium A vezető a fix kódolás helyett megoldja az illesztőprogramot chromedriver.exe.

2. forgatókönyv: jQuery bővítmény

Sok jQuery bővítmény implementál eszköztippeket, és mindegyik kissé eltérően jelenik meg.

Néhány bővítmény mindig a trigger elem mellett tartja az eszköztipp jelölést, míg mások dinamikusan létrehoznak egy „div” címkét, amikor a kurzor belép a trigger elembe.

Ehhez a bemutatóhoz a „jQuery Tools Tooltip” stílust használjuk.

Nyisd ki https://demo.guru99.com/test/tooltip.html; a „Letöltés most” fölé vive az egérmutatót, egy speciális eszköztipp jelenik meg képpel, felirattal, háttérrel, egy kis táblázattal és egy kattintható hivatkozással.

jQuery bővítmény eszközleírása

Ha megvizsgálod a forráskódot, az eszköztippet ábrázoló div már ott van a „Letöltés most” link mellett. Az alábbi szkriptcímke szabályozza, hogy mikor jelenik meg.

jQuery bővítmény eszköztipp forráskódja

Most ellenőrizzük az eszköztippben látható hivatkozás szövegét.

Először keresse meg a „Letöltés most” webelemet. Az Interactions API segítségével vigye az egérmutatót az elem fölé. Ezután keresse meg a megjelenített eszköztippben található hivatkozásra mutató webelemet, és ellenőrizze a szövegét a várt értékkel szemben.

jQuery bővítmény eszköztipp-ellenőrzése

Itt van a kód:

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

        // Hover over the "Download now" link to reveal the tooltip
        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();
    }
}

Code Magyarázat:

  1. Keresse meg azt a WebElement elemet, amely az egérmutatót fölé helyezendő „Letöltés most” elemhez van leképezve.
  2. Az Interactions API segítségével vigye a kurzort a „Letöltés most” elemre.
  3. Miután láthatóvá vált az eszköztipp, keresse meg a hivatkozást jelző WebElement elemet az eszköztippben (az „a” tag).
  4. Olvassa el az elemleírás szövegét a következővel: getText() és hasonlítsa össze a tárolt várható értékkel expectedTooltip.

GYIK

Ha az eszköztipp a HTML title attribútumával épül fel, hívja meg a getAttribute(„title”) vagy a getDomAttribute(„title”) metódust a WebElement elemen, és hasonlítsa össze a visszaadott szöveget a várt értékkel.

Használd az Actions osztályt a moveToElement(target).perform() függvényhez, várj, amíg a tooltip elem láthatóvá válik, majd olvasd be a szövegét vagy attribútumát a getText() függvénnyel, és állítsd be az értéket.

Null értéket ad vissza, ha az elemnek nincs title attribútuma, vagy a tooltip szövege dinamikusan jelenik meg egy külön div-en keresztül. Vizsgálja meg a DOM-ot, és célozza meg a tényleges tooltip konténert.

A mesterséges intelligenciával működő eszközök automatikusan generálnak helymeghatározókat, önjavító szelektorokat alkalmaznak a DOM változása esetén, és egérrel való mozgatási sorozatokat javasolnak, csökkentve ezzel a változó elemtipp-teszteket és a karbantartási időt a böngészők között.

Igen. A modern mesterséges intelligencia asszisztensek beolvassák az oldalt, észlelik az egérrel mozgatható elemeket, és futtatásra kész képeket generálnak. Selenium szkriptek állításokkal, ami jelentősen csökkenti a manuális szkriptelési erőfeszítést az eszköztippek lefedettségéhez.

Foglald össze ezt a bejegyzést a következőképpen: