Cómo hacer clic en una imagen en Selenium Webdriver

Acceder a enlaces de imágenes

Los enlaces de imágenes son enlaces en páginas web representadas por una imagen que, al hacer clic en ella, navega a una ventana o página diferente.

Como son imágenes, no podemos usar los métodos By.linkText() y By.partialLinkText() porque los enlaces de imágenes básicamente no tienen ningún texto de enlace.

En este caso, deberíamos recurrir al uso de By.cssSelector o By.xpath. El primer método es más preferido debido a su simplicidad.

En el siguiente ejemplo, accederemos al logotipo de "Facebook" en la parte superior izquierda de la página de recuperación de contraseña de Facebook.

Acceder a enlaces de imágenes

Usaremos By.cssSelector y el atributo "título" del elemento para acceder al enlace de la imagen. Y luego verificaremos si somos redirigidos a la página de inicio de Facebook.

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();		

    }		
}

Resultado

Haga clic en la imagen en Selenium Webdriver

Conclusión

Todo esto es para hacer clic en imágenes. El acceso al enlace de la imagen se realiza mediante By.cssSelector()