Jak kliknout na obrázek v Selenium Webdriver
⚡ Chytré shrnutí
Klikněte na obrázek v Selenium WebDriver vyžaduje strategie CSS selektoru nebo XPath, protože obrazové elementy nezobrazují text odkazu. Tento článek vysvětluje, jak najít obrázek, spustit akci kliknutí a ověřit, zda navigace proběhla úspěšně.

Kliknutím na obrázek v Selenium WebDriver je běžný úkol, který se používá, když ikona, logo nebo miniatura slouží jako navigační odkaz. Protože obrázky neobsahují žádný viditelný text, tradiční lokátory odkazů a textů selhávají a je vyžadována spolehlivější strategie selektorů.
Přístup k odkazům na obrázky
Obrázky jsou kotvy na webových stránkách reprezentované obrázkem, které po kliknutí přesměrují prohlížeč do jiného okna nebo na jinou stránku.
Protože se jedná o obrázky, nemůžeme použít metody By.linkText() a By.partialLinkText(), protože odkazy na obrázky nemají žádný text odkazu.
V tomto případě bychom se měli uchýlit k použití buď By.cssSelector, nebo By.xpath. První metoda je obecně preferována kvůli své jednoduchosti a čitelnosti.
V níže uvedeném příkladu přistoupíme k logu „Facebook“ v levé horní části stránky obnovení hesla Facebooku.
Pro přístup k odkazu na obrázek použijeme By.cssSelector a atribut „title“ elementu. Poté ověříme, zda byl prohlížeč přesměrován na domovskou stránku Facebooku.
Java Code Příklad
Následující Selenium Úryvek kódu WebDriver spustí Chrome, otevře stránku pro obnovení hesla Facebooku, klikne na obrázek loga Facebooku a zobrazí výsledný název stránky.
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();
}
}
Výsledek
Nejlepší postupy pro klikání na obrázky
Několik návyků zvyšuje spolehlivost automatizace klikání na obrázky v různých prohlížečích a velikostech obrazovek.
- Upřednostněte stabilní atribut, jako je title, alt, aria-label nebo data-*, před hluboce vnořenými cestami CSS.
- Před vydáním kliknutí přidejte explicitní WebDriverWait pro ElementToBeClickable.
- U obrázků načítaných metodou líně posuňte prvek do zobrazení pomocí JavascriptVykonavatel nejprve.
- Pokud průhledná vrstva zablokuje kliknutí, vraťte se k JavaKliknutí skriptu na podkladový prvek.
- Ověřte navigaci pomocí driver.getTitle() nebo unikátního elementu na cílové stránce.
Jak umělá inteligence vylepšuje strategie vyhledávání obrázků
Nástroje pro testování s podporou umělé inteligence, jako například Testim, Mabl a Healenium analyzují DOM kolem obrázku a navrhují samoopravitelné lokátory. Když se po vydání změní název třídy nebo atribut, framework automaticky přepne na nejstabilnější alternativu, což snižuje nespolehlivá selhání při navigaci založené na ikonách.
Inženýři mohou také použít ChatGPT nebo GitHub Copilot ke generování úryvků WebDriveru, navrhování robustních výrazů CSS nebo XPath pro obrázek a k navrhování assercí pro stránku, která se načte po kliknutí. Vygenerovaný kód by měl být i nadále zkontrolován z hlediska správnosti a zpracování čekání a překrytí.
Závěr
Kliknutím na odkazy na obrázky v Selenium WebDriver je jednoduchý, jakmile si vyberete stabilní lokátor. By.cssSelector s atributem title nebo alt je nejčitelnější přístup, By.xpath je záložní řešení, když je kódování nepraktické, a explicitní čekání zajistí spolehlivost skriptu napříč běhy.

.png)
.png)