Kuinka klikata kuvaa sisään Selenium Web-ohjain

⚡ Älykäs yhteenveto

Klikkaa kuvaa sisään Selenium WebDriver vaatii CSS-valitsimen tai XPath-strategioita, koska kuvaelementit eivät paljasta linkkitekstiä. Tässä artikkelissa selitetään, miten kuva paikannetaan, miten klikkaustoiminto käynnistetään ja miten navigoinnin onnistuminen varmistetaan.

  • 🖱️ Ydintoiminto: Käytä driver.findElement(By.cssSelector(…)).click()-funktiota napsauttaaksesi mitä tahansa ankkurin sisällä renderöityä kuvaelementtiä.
  • 🎯 Paikanninvalinta: By.linkText ja By.partialLinkText eivät toimi kuvien kanssa, joten By.cssSelector tai By.xpath vaaditaan.
  • 🧪 Vahvistusvaihe: Vahvista onnistunut klikkaus asettamalla uusi sivun otsikko driver.getTitle()-funktiolla odotettua kohdemerkkijonoa vasten.
  • 🤖 AI-apu: Nykyaikaiset tekoälylaajennukset ehdottavat vakaita CSS-valitsimia ja automaattisesti korjautuvia paikantimia, kun sovelluksen merkinnät tai attribuuttiarvot muuttuvat.
  • 🛠️ Yleiset sudenkuopat: Piilotetut, laiskasti ladatut tai päällekkäiset kuvat vaativat usein nimenomaisia ​​odotusaikoja, vierittämistä näkyviin tai JavaNapsauta skriptiä rekisteröityäksesi oikein.

Napsauta Kuva sisään Selenium

Kuvan napsauttaminen kohdassa Selenium WebDriver on yleinen tehtävä, kun kuvake, logo tai pikkukuva käyttäytyy navigointilinkkinä. Koska kuvissa ei ole näkyvää tekstiä, perinteiset linkkitekstipaikantimet epäonnistuvat ja tarvitaan luotettavampi valintastrategia.

Kuvalinkkien käyttäminen

Kuvalinkit ovat verkkosivuilla olevia ankkureita, joita edustaa kuva, jota napsauttamalla selain siirtyy toiseen ikkunaan tai sivulle.

Koska ne ovat kuvia, emme voi käyttää By.linkText()- ja By.partialLinkText()-metodeja, koska kuvalinkeissä ei ole lainkaan linkkitekstiä.

Tässä tapauksessa meidän tulisi turvautua joko By.cssSelector- tai By.xpath-metodiin. Ensimmäistä menetelmää suositaan yleensä sen yksinkertaisuuden ja luettavuuden vuoksi.

Alla olevassa esimerkissä pääsemme Facebook-logoon Facebookin salasanan palautussivun vasemmassa yläkulmassa.

Kuvalinkkien käyttäminen

Käytämme By.cssSelector-elementtiä ja elementin ”title”-attribuuttia kuvalinkin käyttämiseen. Tämän jälkeen tarkistamme, että selain on ohjattu Facebookin kotisivulle.

Java Code esimerkki

Seuraavat Selenium WebDriver-koodinpätkä käynnistää Chromen, avaa Facebookin salasanan palautussivun, napsauttaa Facebook-logokuvaa ja vahvistaa tuloksena olevan sivun otsikon.

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

Tulos

Napsauta Kuva sisään Selenium Web-ohjain

Kuvien klikkaamisen parhaat käytännöt

Muutamat tavat tekevät kuvien klikkausten automatisoinnista luotettavampaa eri selaimissa ja näyttökooissa.

  • Suosi vakaata attribuuttia, kuten title, alt, aria-label tai data-*, syvälle sisäkkäisten CSS-polkujen sijaan.
  • Lisää ElementToBeClickable-funktiolle eksplisiittinen WebDriverWait-määrite ennen klikkauksen suorittamista.
  • Laiskasti ladattujen kuvien kohdalla vieritä elementti näkyviin näppäimellä JavascriptToimeenpanija ensin.
  • Jos läpinäkyvä peittokuva estää napsautuksen, palaa takaisin JavaSkripti klikkaa alla olevaa elementtiä.
  • Vahvista navigointi driver.getTitle():lla tai kohdesivun yksilöllisellä elementillä.

Kuinka tekoäly parantaa kuvanpaikannusstrategioita

Tekoälyllä avustetut testaustyökalut, kuten Testim, Mabl ja Healenium analysoivat kuvan ympärillä olevaa DOM:ia ja ehdottavat itsekorjautuvia paikantimia. Kun luokan nimi tai attribuutti muuttuu julkaisun jälkeen, kehys vaihtaa automaattisesti vakaimpaan vaihtoehtoon, mikä vähentää epätasaisia ​​​​virheitä kuvakepohjaisessa navigoinnissa.

Insinöörit voivat myös käyttää ChatGPT:tä tai GitHub Copilotia WebDriver-koodinpätkien luomiseen, vankkojen CSS- tai XPath-lausekkeiden ehdottamiseen kuvalle ja väitteiden luonnosteluun sivulle, joka latautuu klikkauksen jälkeen. Luodun koodin oikeellisuus ja odotusaikojen ja päällekkäisyyksien käsittely tulisi silti tarkistaa.

Yhteenveto

Kuvalinkkien napsauttaminen Selenium WebDriver on suoraviivainen, kun valitset vakaan paikantimen. By.cssSelector yhdessä title- tai alt-attribuutin kanssa on luettavin lähestymistapa, By.xpath on varamenetelmä, kun merkintä on hankalaa, ja eksplisiittiset odotusajat tekevät skriptistä luotettavan eri suoritusten välillä.

UKK

Etsi kuva By.cssSelector- tai By.xpath-metodilla käyttämällä vakaata attribuuttia, kuten title, alt tai aria-label, ja kutsu sitten .click()-funktiota palautetun WebElement-elementin perusteella. Vahvista tulos driver.getTitle()-funktiolla tai kohdesivun yksilöllisellä elementillä.

Kyllä. Työkaluja, kuten Testim, Mabl ja ChatGPT tarkastavat ympäröivän DOM:n ja ehdottavat vakaata valitsinta otsikon, alt:n, aria-label:n tai data-attribuuttien perusteella. Insinöörien tulisi silti tarkistaa luodun paikantimen ainutlaatuisuus ja joustavuus.

Itsekorjautuva paikannin on tekoälyn ominaisuus, joka vaihtaa vaihtoehtoiseen valitsimeen, kun alkuperäinen epäonnistuu. Kehykset, kuten Healenium ja Mabl, tarkkailevat kuvan ominaisuusmuutoksia ja valitsevat vakaimman korvaavan vaihtoehdon, mikä vähentää epätasaisia ​​testejä käyttöliittymän päivitysten jälkeen.

Molemmat paikantimet vastaavat ankkurin sisällä olevaa näkyvää tekstiä. Kuvalinkki käärii img-tagin eikä paljasta tekstisolmua, joten osuma ei koskaan palauta mitään. Käytä sen sijaan By.cssSelector- tai By.xpath-metodia title-, alt- tai aria-label-attribuutin kanssa.

Jos peittokuva, modaalielementti tai työkaluvihje peittää kuvan, vieritä se näkyviin näppäimellä JavascriptExecutor ja lisää WebDriverWait-funktio ElementToBeClickable-funktiolle. Varamenetelmänä suorita JavaSkriptin napsauttaminen WebElementissä ohittaa päällekkäisyydenping kerros.

Vahvista uusi sivun otsikko funktiolla driver.getTitle(), nykyinen URL driver.getCurrentUrl():lla tai kohdesivulla olevan yksilöllisen elementin perusteella. Näiden tarkistusten yhdistelmä antaa testille varmuuden siitä, että napsautus todella käynnisti navigoinnin.

Tiivistä tämä viesti seuraavasti: