Cum să dați clic pe imagine în Selenium Webdriver
⚡ Rezumat inteligent
Faceți clic pe imagine în Selenium WebDriver necesită selectori CSS sau strategii XPath deoarece elementele de imagine nu expun textul linkului. Acest articol explică cum să localizați imaginea, să declanșați acțiunea de clic și să verificați dacă navigarea are succes.

Dacă faceți clic pe o imagine în Selenium WebDriver este o sarcină obișnuită atunci când o pictogramă, un logo sau o miniatură se comportă ca un link de navigare. Deoarece imaginile nu conțin text vizibil, localizatoarele tradiționale de link-text eșuează și este necesară o strategie de selecție mai fiabilă.
Accesarea link-urilor de imagine
Linkurile de imagine sunt ancore pe paginile web reprezentate de o imagine care, atunci când este accesată, navighează browserul către o altă fereastră sau pagină.
Deoarece sunt imagini, nu putem folosi metodele By.linkText() și By.partialLinkText() deoarece linkurile de imagine nu au deloc text de link.
În acest caz, ar trebui să recurgem fie la By.cssSelector, fie la By.xpath. Prima metodă este în general preferată datorită simplității și lizibilității sale.
În exemplul de mai jos, vom accesa sigla „Facebook” în partea din stânga sus a paginii Facebook de recuperare a parolei.
Vom folosi By.cssSelector și atributul „title” al elementului pentru a accesa linkul imaginii. Apoi vom verifica dacă browserul a fost direcționat către pagina principală a Facebook.
Java Code Exemplu
Următoarele Selenium Fragmentul WebDriver lansează Chrome, deschide pagina de recuperare a parolei Facebook, dă clic pe imaginea logo-ului Facebook și afișează titlul paginii rezultate.
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();
}
}
Rezultat
Cele mai bune practici pentru clicurile pe imagini
Câteva obiceiuri fac ca automatizarea clicurilor pe imagini să fie mai fiabilă în diferite browsere și dimensiuni de ecran.
- Preferați un atribut stabil, cum ar fi title, alt, aria-label sau data-*, în locul unor căi CSS imbricate profund.
- Adăugați un WebDriverWait explicit pentru ElementToBeClickable înainte de a efectua clicul.
- Pentru imaginile încărcate în mod lenj, derulați elementul în vizualizare cu JavascriptExecutorul mai întâi.
- Dacă o suprapunere transparentă interceptează clicul, reveniți la o JavaClic pe script pe elementul subiacent.
- Validați navigarea cu driver.getTitle() sau cu un element unic pe pagina de destinație.
Cum îmbunătățește inteligența artificială strategiile de localizare a imaginilor
Instrumente de testare asistate de inteligență artificială, cum ar fi TestimMabl și Healenium analizează DOM-ul din jurul unei imagini și propun localizatori cu auto-reparare. Când numele unei clase sau un atribut se modifică după o lansare, framework-ul schimbă automat alternativa cea mai stabilă, ceea ce reduce erorile instabile în navigarea bazată pe pictograme.
Inginerii pot folosi, de asemenea, ChatGPT sau GitHub Copilot pentru a genera fragmente WebDriver, a sugera expresii CSS sau XPath robuste pentru o imagine și a redacta afirmații pentru pagina care se încarcă după clic. Codul generat ar trebui totuși verificat pentru corectitudine și pentru gestionarea așteptărilor și a suprapunerilor.
Concluzie
Dând clic pe linkurile de imagine în Selenium WebDriver este simplu de utilizat odată ce alegeți un localizator stabil. By.cssSelector cu atributul title sau alt este cea mai lizibilă abordare, By.xpath este soluția de rezervă atunci când markup-ul este dificil, iar așteptările explicite fac scriptul fiabil pe parcursul rulărilor.

.png)
.png)