Comment cliquer sur une image dans Selenium Pilote Web
โก Rรฉsumรฉ intelligent
Cliquez sur l'image dans Selenium WebDriver nรฉcessite l'utilisation de sรฉlecteurs CSS ou de stratรฉgies XPath, car les รฉlรฉments image ne contiennent pas de texte pour les liens. Cet article explique comment localiser l'image, dรฉclencher l'action de clic et vรฉrifier que la navigation rรฉussit.

Cliquer sur une image dans Selenium L'utilisation de WebDriver est courante lorsqu'une icรดne, un logo ou une miniature sert de lien de navigation. Comme les images ne contiennent aucun texte visible, les localisateurs de texte de lien traditionnels sont inefficaces et une stratรฉgie de sรฉlection plus fiable est nรฉcessaire.
Accรฉder aux liens d'images
Les liens images sont des ancres sur les pages web reprรฉsentรฉes par une image qui, lorsqu'on clique dessus, fait naviguer le navigateur vers une autre fenรชtre ou page.
Comme il s'agit d'images, nous ne pouvons pas utiliser les mรฉthodes By.linkText() et By.partialLinkText() car les liens d'images ne contiennent aucun texte.
Dans ce cas, il convient d'utiliser soit By.cssSelector, soit By.xpath. La premiรจre mรฉthode est gรฉnรฉralement privilรฉgiรฉe pour sa simplicitรฉ et sa lisibilitรฉ.
Dans l'exemple ci-dessous, nous accรฉderons au logo ยซ Facebook ยป dans la partie supรฉrieure gauche de la page de rรฉcupรฉration de mot de passe de Facebook.
Nous utiliserons By.cssSelector et l'attribut ยซ title ยป de l'รฉlรฉment pour accรฉder au lien de l'image. Nous vรฉrifierons ensuite que le navigateur a bien รฉtรฉ redirigรฉ vers la page d'accueil de Facebook.
Java Code Exemple
Selenium L'extrait de code WebDriver lance Chrome, ouvre la page de rรฉcupรฉration du mot de passe Facebook, clique sur l'image du logo Facebook et affiche le titre de la page rรฉsultante.
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();
}
}
Rรฉsultat
Meilleures pratiques pour cliquer sur les images
Quelques habitudes permettent de rendre l'automatisation des clics sur les images plus fiable sur tous les navigateurs et toutes les tailles d'รฉcran.
- Privilรฉgiez un attribut stable tel que title, alt, aria-label ou data-* plutรดt que des chemins CSS profondรฉment imbriquรฉs.
- Ajoutez un WebDriverWait explicite pour ElementToBeClickable avant de dรฉclencher le clic.
- Pour les images chargรฉes de maniรจre diffรฉrรฉe, faites dรฉfiler l'รฉlรฉment jusqu'ร ce qu'il soit visible avec JavascriptL'exรฉcuteur testamentaire en premier.
- Si une superposition transparente intercepte le clic, utilisez une mรฉthode alternative. JavaScript : cliquez sur lโรฉlรฉment sous-jacent.
- Validez la navigation avec driver.getTitle() ou un รฉlรฉment unique sur la page de destination.
Comment l'IA amรฉliore les stratรฉgies de localisation d'images
Les outils de test assistรฉs par l'IA tels que TestimMabl et Healenium analysent le DOM autour d'une image et proposent des localisateurs auto-rรฉparateurs. Lorsqu'un nom de classe ou un attribut change aprรจs une mise ร jour, le framework le remplace automatiquement par l'alternative la plus stable, ce qui rรฉduit les dysfonctionnements liรฉs ร la navigation par icรดnes.
Les ingรฉnieurs peuvent รฉgalement utiliser ChatGPT ou GitHub Copilot pour gรฉnรฉrer des extraits de code WebDriver, suggรฉrer des expressions CSS ou XPath robustes pour une image et rรฉdiger des assertions pour la page qui se charge aprรจs le clic. Le code gรฉnรฉrรฉ doit nรฉanmoins รชtre vรฉrifiรฉ afin de s'assurer de sa correction et de sa gestion des temps d'attente et des superpositions.
Conclusion
Cliquer sur les liens d'images dans Selenium WebDriver est simple d'utilisation une fois qu'un localisateur stable a รฉtรฉ choisi. L'utilisation de `By.cssSelector` avec l'attribut `title` ou `alt` est la mรฉthode la plus lisible ; `By.xpath` est la solution de repli lorsque le balisage est complexe, et les attentes explicites garantissent la fiabilitรฉ du script lors de ses exรฉcutions successives.

.png)
.png)