Kako kliknuti na sliku u Selenium Webdriver

โšก Pametni saลพetak

Kliknite na sliku u Selenium WebDriver zahtijeva CSS selektor ili XPath strategije jer elementi slike ne otkrivaju tekst poveznice. Ovaj ฤlanak objaลกnjava kako pronaฤ‡i sliku, pokrenuti radnju klika i provjeriti je li navigacija uspjeลกna.

  • ๐Ÿ–ฑ๏ธ Osnovna akcija: Koristite driver.findElement(By.cssSelector(โ€ฆ)).click() za klik na bilo koji element slike prikazan unutar sidra.
  • ๐ŸŽฏ Izbor lokatora: By.linkText i By.partialLinkText ne rade za slike, pa su potrebni By.cssSelector ili By.xpath.
  • ๐Ÿงช Korak provjere: Potvrdite uspjeลกan klik tako da pomoฤ‡u funkcije driver.getTitle() potvrdite novi naslov stranice u odnosu na oฤekivani odrediลกni niz.
  • ๐Ÿค– AI pomoฤ‡: Moderni AI dodaci predlaลพu stabilne CSS selektore i lokatore za automatsko ispravljanje kada se promijene oznake aplikacije ili vrijednosti atributa.
  • ๐Ÿ› ๏ธ Uobiฤajene zamke: Skrivene, odgoฤ‘eno uฤitane ili preklapajuฤ‡e slike ฤesto zahtijevaju eksplicitna ฤekanja, pomicanje u prikaz ili JavaKliknite na skriptu za pravilnu registraciju.

Kliknite na Slika unutra Selenium

Klikom na sliku u Selenium WebDriver je uobiฤajen zadatak kada se ikona, logotip ili sliฤica ponaลกaju kao navigacijska poveznica. Buduฤ‡i da slike ne sadrลพe vidljivi tekst, tradicionalni lokatori poveznica i teksta ne uspijevaju i potrebna je pouzdanija strategija odabira.

Pristup poveznicama za slike

Linkovi na slike su sidra na web stranicama predstavljena slikom koja, kada se klikne na nju, vodi preglednik na drugi prozor ili stranicu.

Buduฤ‡i da su to slike, ne moลพemo koristiti metode By.linkText() i By.partialLinkText() jer poveznice na slike uopฤ‡e nemaju tekst poveznice.

U ovom sluฤaju, trebali bismo se posluลพiti By.cssSelector ili By.xpath. Prva metoda je opฤ‡enito poลพeljnija zbog svoje jednostavnosti i ฤitljivosti.

U donjem primjeru pristupit ฤ‡emo logotipu โ€œFacebookโ€ u gornjem lijevom dijelu Facebookove stranice za oporavak lozinke.

Pristup poveznicama za slike

Koristit ฤ‡emo By.cssSelector i atribut elementa "title" za pristup poveznici slike. Zatim ฤ‡emo provjeriti je li preglednik preusmjeren na poฤetnu stranicu Facebooka.

Java Code Primjer

Sljedeฤ‡e Selenium Isjeฤak WebDrivera pokreฤ‡e Chrome, otvara stranicu za oporavak lozinke za Facebook, klikne na sliku logotipa Facebooka i potvrdi naslov rezultirajuฤ‡e stranice.

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

Proizlaziti

Kliknite na Slika unutra Selenium Webdriver

Najbolje prakse za klikanje na slike

Nekoliko navika ฤini automatizaciju klikova na slike pouzdanijom u razliฤitim preglednicima i veliฤinama zaslona.

  • Dajte prednost stabilnom atributu kao ลกto su title, alt, aria-label ili data-* u odnosu na duboko ugnijeลพฤ‘ene CSS putanje.
  • Dodajte eksplicitni WebDriverWait za ElementToBeClickable prije izdavanja klika.
  • Za slike koje se uฤitavaju postupno, pomaknite element u prikaz pomoฤ‡u JavascriptIzvrลกitelj prvo.
  • Ako prozirni sloj presreฤ‡e klik, vratite se na JavaKlik skripte na temeljni element.
  • Validirajte navigaciju pomoฤ‡u driver.getTitle() ili jedinstvenog elementa na odrediลกnoj stranici.

Kako umjetna inteligencija poboljลกava strategije lociranja slika

Alati za testiranje potpomognuto umjetnom inteligencijom, kao ลกto su Testim, Mabl i Healenium analiziraju DOM oko slike i predlaลพu lokatore s moguฤ‡noลกฤ‡u samoobnavljanja. Kada se naziv klase ili atribut promijeni nakon objavljivanja, okvir automatski prebacuje na najstabilniju alternativu, ลกto smanjuje nestabilne pogreลกke pri navigaciji temeljenoj na ikonama.

Inลพenjeri takoฤ‘er mogu koristiti ChatGPT ili GitHub Copilot za generiranje WebDriver isjeฤaka, predlaganje robusnih CSS ili XPath izraza za sliku i izradu tvrdnji za stranicu koja se uฤitava nakon klika. Generirani kod i dalje treba pregledati radi ispravnosti te rukovanja ฤekanjima i slojevima.

Zakljuฤak

Klikom na poveznice slika u Selenium WebDriver je jednostavan kada odaberete stabilan lokator. By.cssSelector s atributom title ili alt je najฤitljiviji pristup, By.xpath je rezervna opcija kada je oznaฤavanje nezgrapno, a eksplicitna ฤekanja ฤine skriptu pouzdanom tijekom izvoฤ‘enja.

Pitanja i odgovori

Pronaฤ‘ite sliku pomoฤ‡u By.cssSelector ili By.xpath koristeฤ‡i stabilan atribut kao ลกto su title, alt ili aria-label, a zatim pozovite .click() na vraฤ‡enom WebElementu. Provjerite rezultat pomoฤ‡u driver.getTitle() ili jedinstvenog elementa na odrediลกnoj stranici.

Da. Alati kao ลกto su Testim, Mabl i ChatGPT pregledavaju okolni DOM i predlaลพu stabilan selektor na temelju atributa title, alt, aria-label ili data. Inลพenjeri bi i dalje trebali pregledati generirani lokator radi jedinstvenosti i otpornosti.

Samoobnavljajuฤ‡i lokator je znaฤajka umjetne inteligencije koja zamjenjuje alternativni selektor kada originalni ne uspije. Okviri poput Healeniuma i Mabla promatraju promjene atributa oko slike i odabiru najstabilniju zamjenu, ลกto smanjuje nestabilne testove nakon osvjeลพavanja korisniฤkog suฤelja.

Oba lokatora podudaraju se s vidljivim tekstom unutar sidra. Veza slike obavija oznaku img i ne otkriva tekstualni ฤvor, tako da podudaranje uvijek ne vraฤ‡a niลกta. Umjesto toga koristite By.cssSelector ili By.xpath s title, alt ili aria-label.

Ako prekrivni okvir, modalni prozor ili opis alata blokiraju sliku, pomaknite se prema dolje da se prikaลพe pomoฤ‡u JavascriptIzvrลกitelj i dodajte WebDriverWait za ElementToBeClickable. Kao rezervu, izvrลกite JavaKlik skripte na WebElement za zaobilaลพenje preklapanjaping sloj.

Potvrdite novi naslov stranice pomoฤ‡u driver.getTitle(), trenutni URL s driver.getCurrentUrl() ili prisutnoลกฤ‡u jedinstvenog elementa na odrediลกnoj stranici. Kombinacija ovih provjera daje testu sigurnost da je klik doista pokrenuo navigaciju.

Saลพmite ovu objavu uz: