Hogyan kell a képre kattintani Selenium Webdriver

⚡ Okos összefoglaló

Kattintson a képre a Selenium A WebDriver CSS szelektort vagy XPath stratégiákat igényel, mivel a képelemek nem jelenítik meg a hivatkozás szövegét. Ez a cikk elmagyarázza, hogyan lehet megtalálni a képet, hogyan lehet elindítani a kattintási műveletet, és hogyan ellenőrizni a navigáció sikerességét.

  • 🖱️ Alapvető intézkedés: A driver.findElement(By.cssSelector(…)).click() használatával kattinthat egy horgonyon belül megjelenített képelemre.
  • 🎯 Helymeghatározó választás: A By.linkText és a By.partialLinkText nem működik képek esetén, ezért a By.cssSelector vagy a By.xpath megadása kötelező.
  • 🧪 Ellenőrzési lépés: A sikeres kattintást úgy erősítheted meg, hogy a driver.getTitle() függvénnyel a várt cél karakterlánccal szemben beállítod az új oldal címét.
  • 🤖 AI segítség: A modern mesterséges intelligencia bővítmények stabil CSS-szelektorokat és automatikus javítási lokátorokat javasolnak, amikor az alkalmazás jelölőkódja vagy attribútumértékei megváltoznak.
  • 🇧🇷 Gyakori buktatók: A rejtett, lusta betöltésű vagy átfedésben lévő képek gyakran explicit várakozást, görgetést igényelnek a nézetbe, vagy JavaA szkriptre kattintva regisztrálható.

Kattintson a Kép be Selenium

Egy képre kattintva Selenium A WebDriver egy gyakori feladat, amikor egy ikon, logó vagy bélyegkép navigációs hivatkozásként viselkedik. Mivel a képek nem hordoznak látható szöveget, a hagyományos link-szöveg helymeghatározók kudarcot vallanak, és megbízhatóbb kiválasztási stratégiára van szükség.

Képhivatkozások elérése

A képlinkek a weboldalakon található horgonypontok, amelyeket egy kép képvisel, és amelyre kattintva a böngésző egy másik ablakba vagy oldalra navigál.

Mivel képekről van szó, nem használhatjuk a By.linkText() és By.partialLinkText() metódusokat, mivel a képhivatkozásoknak egyáltalán nincs hivatkozásszövegük.

Ebben az esetben a By.cssSelector vagy a By.xpath metódust kell használnunk. Az első módszert általában az egyszerűsége és olvashatósága miatt részesítik előnyben.

Az alábbi példában a „Facebook” emblémát fogjuk elérni a Facebook Jelszó-helyreállítási oldalának bal felső részén.

Képhivatkozások elérése

A By.cssSelector függvényt és az elem „title” attribútumát fogjuk használni a kép linkjének eléréséhez. Ezután ellenőrizzük, hogy a böngésző a Facebook kezdőlapjára került-e.

Java Code Példa

A következő Selenium A WebDriver kódrészlet elindítja a Chrome-ot, megnyitja a Facebook jelszó-helyreállító oldalát, rákattint a Facebook logóra, és beállítja a kapott oldal címét.

package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyClass {

    public static void main(String[] args) {
        String baseUrl = "https://www.facebook.com/login/identify?ctx=recover";
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        // click on the "Facebook" logo on the upper left portion
        driver.findElement(By.cssSelector("a[title=\"Go to Facebook home\"]")).click();

        // verify that we are now back on Facebook's homepage
        if (driver.getTitle().equals("Facebook - log in or sign up")) {
            System.out.println("We are back at Facebook's homepage");
        } else {
            System.out.println("We are NOT in Facebook's homepage");
        }
        driver.close();
    }
}

Eredmény

Kattintson a Kép be Selenium Webdriver

A képek kattintásának bevált gyakorlatai

Néhány szokás megbízhatóbbá teszi a képkattintás-automatizálást a böngészők és képernyőméretek között.

  • A mélyen beágyazott CSS-útvonalakkal szemben részesíts előnyben egy stabil attribútumot, például a title, alt, aria-label vagy data-* jelzőt.
  • Adjon hozzá egy explicit WebDriverWait elemet az ElementToBeClickable elemhez a kattintás kiadása előtt.
  • Laza betöltésű képek esetén görgesd a kívánt elemet a nyíllal a nézetbe. JavascriptElőször a végrehajtó.
  • Ha egy átlátszó réteg elfogja a kattintást, akkor térjen vissza egy JavaSzkript kattintás az alapul szolgáló elemre.
  • A navigációt a driver.getTitle() függvénnyel vagy a céloldalon található egyedi elemmel ellenőrizheted.

Hogyan javítja a mesterséges intelligencia a képkereső stratégiákat?

Mesterséges intelligencia által támogatott tesztelési eszközök, mint például TestimA , a Mabl és a Healenium egy kép körüli DOM-ot elemeznek, és önjavító lokátorokat javasolnak. Amikor egy osztály neve vagy attribútum megváltozik egy kiadás után, a keretrendszer automatikusan a legstabilabb alternatívára vált, ami csökkenti az ikon alapú navigáció egyenetlen hibáit.

A mérnökök a ChatGPT vagy a GitHub Copilot segítségével WebDriver kódrészleteket is generálhatnak, robusztus CSS vagy XPath kifejezéseket javasolhatnak egy képhez, és állításokat készíthetnek a kattintás után betöltő oldalhoz. A generált kódot továbbra is ellenőrizni kell a helyesség, valamint a várakozások és átfedések kezelése szempontjából.

Összegzés

A képhivatkozásokra kattintva Selenium A WebDriver használata egyszerű, ha egyszer kiválasztunk egy stabil lokátort. A By.cssSelector a title vagy alt attribútummal a legolvashatóbb megközelítés, a By.xpath a tartalék megoldás, ha a jelölőnyelv nehézkes, az explicit várakozások pedig megbízhatóvá teszik a szkriptet a futások között.

GYIK

Keresd meg a képet a By.cssSelector vagy a By.xpath segítségével egy stabil attribútum, például title, alt vagy aria-label használatával, majd hívd meg a .click() függvényt a visszaadott WebElementre. Ellenőrizd az eredményt a driver.getTitle() függvénnyel vagy egy egyedi elemmel a céloldalon.

Igen. Eszközök, mint például TestimA , a Mabl és a ChatGPT megvizsgálják a környező DOM-ot, és egy stabil szelektort javasolnak a title, alt, aria-label vagy adatattribútumok alapján. A mérnököknek továbbra is ellenőrizniük kell a generált lokátort az egyediség és a rugalmasság szempontjából.

Az önjavító lokátor egy mesterséges intelligencia által létrehozott funkció, amely egy alternatív szelektort használ, ha az eredeti meghibásodik. Az olyan keretrendszerek, mint a Healenium és a Mabl, figyelik a kép attribútumváltozásait, és kiválasztják a legstabilabb cserét, ami csökkenti a hibás teszteket a felhasználói felület frissítése után.

Mindkét lokátor egyezik a horgonyon belüli látható szövegben. Egy képhivatkozás egy img taget tartalmaz, és nem jelenít meg szöveges csomópontot, így az egyezés mindig semmit sem ad vissza. Használd helyette a By.cssSelector vagy a By.xpath függvényt a title, alt vagy aria-label attribútummal.

Ha egy átfedés, modális ablak vagy eszköztipp eltakarja a képet, görgessen a nézetbe a JavascriptExecutor parancsot, és adjon hozzá egy WebDriverWait elemet az ElementToBeClickable-hez. Tartalékként futtasson egy JavaSzkriptkattintás a WebElementre az átfedés megkerüléséhezping réteg.

Az új oldalcímet a driver.getTitle() függvénnyel kell érvényesíteni, az aktuális URL a driver.getCurrentUrl() függvénnyel, vagy egy egyedi elem jelenlétével a céloldalon. Ezen ellenőrzések kombinációja biztosítja a tesztet arról, hogy a kattintás valóban elindította a navigációt.

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