If we want to validate that image is properly loading in webpage , we can use the following code –
package com.webdriver_13;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class MyVerification_05 {
public WebDriver driver;
private String baseUrl;
public static void main(String[] args) {
MyVerification_05 mv =new MyVerification_05();
mv.launch_test();
}
public void launch_test()
{
driver = new FirefoxDriver();
baseUrl = "http://demo.tanmaysarkar.com/sample_04.html";
driver.get(baseUrl);
WebElement image1 = driver.findElement(By.xpath("//img[contains(@alt,'image one')]"));
Boolean imageLoaded1 = (Boolean) ((JavascriptExecutor)driver).executeScript("return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0", image1);
if (!imageLoaded1)
{
System.out.println("1. Image is not present");
}
else
{
System.out.println("1. Got it");
}
WebElement image2 = driver.findElement(By.xpath("//img[contains(@alt,'image two')]"));
Boolean imageLoaded2 = (Boolean) ((JavascriptExecutor)driver).executeScript("return arguments[0].complete && typeof arguments[0].naturalWidth != \"undefined\" && arguments[0].naturalWidth > 0", image2);
if (!imageLoaded2)
{
System.out.println("2. Image is not present");
}
else
{
System.out.println("2. Got it");
}
driver.close();
}
}
as in the demo page http://demo.tanmaysarkar.com/sample_04.html
only first image is present and second one is missing or the link is broken , so the output is –
1. Got it
2. Found broken image
