J'essaie de valider une image chargée dans la page Web en utilisant Selenium. Voici la ligne que j'utilise pour la même chose. Le 'ImagePresent' renvoie toujours 'false' même s'il est capable de capturer et d'imprimer la valeur d'attribut de l'image à partir de la dernière ligne.La validation d'image à l'aide de JavascriptExecutor retourne toujours 'false' même lorsque l'image est chargée
WebElement Imglogo = driver.findElement(By
.xpath("//img[@src='Images/Logo.png']"));
Boolean ImagePresent = (Boolean) ((JavascriptExecutor) driver)
.executeScript(
"return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0",
Imglogo);
System.out.println("The boolean value of ImagePresent: "+ImagePresent); //returns false
System.out.println("Image Attribute: "+Imglogo.getAttribute("src")); //prints the full path
Je ne connais pas le sélénium, donc cela peut être complètement inutile - mais y a-t-il une chance que vous fassiez votre évaluation avant le chargement de la page? Y a-t-il un moyen de joindre à l'événement '.load' pour l'élément image et de faire vos évaluations quand ça se déclenche? – theGleep