Pour vérifier si une image est cassée, vous pouvez simplement vérifier si le naturalWidth
de l'élément est 0. Vous feriez boucle à travers les images de la page et faire cette vérification pour chacun. Pour ce faire sur l'ensemble d'un site, vous devez construire un robot d'exploration ou idéalement en trouver un existant et c'est hors de portée pour une question sur SO.
Code de démonstration
driver.get("http://the-internet.herokuapp.com/broken_images");
for (WebElement image : driver.findElements(By.cssSelector("img")))
{
isImageBroken(image);
}
La fonction pour tester des images brouillées
public void isImageBroken(WebElement image)
{
if (image.getAttribute("naturalWidth").equals("0"))
{
System.out.println(image.getAttribute("outerHTML") + " is broken.");
}
}
lors de son exécution, cette commande affiche
<img src="asdf.jpg"> is broken.
<img src="hjkl.jpg"> is broken.
Note: La fonction ci-dessus est un peu artificiel pour cette question . Il serait préférable de renvoyer un boolean
et des validations ont été effectuées dans le script de test, par ex.
public boolean imageExists(WebElement image)
{
return !image.getAttribute("naturalWidth").equals("0");
}
-t-il besoin d'être Sélénium? J'aurais pensé qu'un robot d'indexation serait mieux pour ça. – halfer
Oui, il doit être en sélénium. – MSL
[Quelques idées ici] (https://duckduckgo.com/?q=selenium+site+crawler) - tout bon? – halfer