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.

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.
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
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ä.

.png)
.png)