Sådan klikker du på billedet Selenium Webdriver
⚡ Smart opsummering
Klik på billedet i Selenium WebDriver kræver CSS-selektor eller XPath-strategier, fordi billedelementer ikke viser linktekst. Denne artikel forklarer, hvordan man finder billedet, udløser klikhandlingen og verificerer, at navigationen lykkes.
Klik på et billede i Selenium WebDriver er en almindelig opgave, når et ikon, logo eller miniaturebillede fungerer som et navigationslink. Da billeder ikke indeholder synlig tekst, fejler traditionelle link-tekst-lokaliseringsværktøjer, og en mere pålidelig selektorstrategi er nødvendig.
Adgang til billedlinks
Billedlinks er ankre på websider repræsenteret af et billede, som, når der klikkes på det, navigerer browseren til et andet vindue eller en anden side.
Da de er billeder, kan vi ikke bruge metoderne By.linkText() og By.partialLinkText(), fordi billedlinks slet ikke har nogen linktekst.
I dette tilfælde bør vi ty til enten By.cssSelector eller By.xpath. Den første metode foretrækkes generelt på grund af dens enkelhed og læsbarhed.
I eksemplet nedenfor får vi adgang til "Facebook"-logoet øverst til venstre på Facebooks side for gendannelse af adgangskode.
Vi bruger By.cssSelector og elementets "title"-attribut til at få adgang til billedlinket. Vi bekræfter derefter, at browseren er blevet ført til Facebooks hjemmeside.
Java Code Eksempel
Følgende Selenium WebDriver-kodestykket starter Chrome, åbner Facebooks side til gendannelse af adgangskode, klikker på Facebook-logoet og aktiverer den resulterende sidetitel.
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();
}
}
Resultat
De bedste fremgangsmåder til at klikke på billeder
Et par vaner gør automatisering af billedklik mere pålidelig på tværs af browsere og skærmstørrelser.
- Foretræk en stabil attribut såsom title, alt, aria-label eller data-* frem for dybt indlejrede CSS-stier.
- Tilføj en eksplicit WebDriverWait for ElementToBeClickable, før du udfører klikket.
- For lazy-loaded billeder, rul elementet ind i syne med JavascriptEksekutor først.
- Hvis et gennemsigtigt overlay opfanger klikket, skal du gå tilbage til en JavaScriptklik på det underliggende element.
- Valider navigation med driver.getTitle() eller et unikt element på destinationssiden.
Hvordan AI forbedrer billedlokaliseringsstrategier
AI-assisterede testværktøjer som f.eks. Testim, Mabl og Healenium analyserer DOM'en omkring et billede og foreslår selvreparerende locators. Når et klassenavn eller en attribut ændres efter en udgivelse, skifter frameworket automatisk til det mest stabile alternativ, hvilket reducerer ustabile fejl ved ikonbaseret navigation.
Ingeniører kan også bruge ChatGPT eller GitHub Copilot til at generere WebDriver-snippets, foreslå robuste CSS- eller XPath-udtryk til et billede og udarbejde assertions til den side, der indlæses efter klikket. Genereret kode bør stadig gennemgås for korrekthed og håndtering af ventetider og overlays.
Konklusion
Klik på billedlinks i Selenium WebDriver er ligetil, når du har valgt en stabil locator. By.cssSelector med title- eller alt-attributten er den mest læsbare tilgang, By.xpath er fallback, når markup'en er akavet, og eksplicitte ventetider gør scriptet pålideligt på tværs af kørsel.


.png)
.png)