Comandos comunes en Selenium Webdriver

Cómo usar comandos en Selenium WebDriver

En este tutorial te enseñaremos a hacer uso de los comandos más comunes en Selenium WebDriver los cuales nos permiten realizar nuestros scripts de prueba de manera funcional emulando las acciones que realiza un usuario final. A continuación describiremos los más importantes y usados en las pruebas automatizadas.

Crear instancias de Web Elements

En lugar de usar la sintaxis larga «driver.findElement(by.locator ())» cada vez que acceda a un elemento determinado, podemos crear instancias de un objeto WebElement. La clase WebElement está contenida en el paquete «org.openqa.selenium.*»
WebElement myElement = driver.findElement(By.id("username"));
myElement.sendKeys("tutorial");

Hacer clic en un elemento

Hacer clic es quizás la forma más común de interactuar con elementos Web. El método click() se utiliza para simular el clic de cualquier elemento. El siguiente ejemplo muestra cómo se usó click() para hacer clic en el botón «Sign-in» de Mercury Tours.
driver.findElement(By.name("login")).click();
Las siguientes cosas deben tenerse en cuenta al utilizar el método click().
  • No toma ningún parámetro/argumento. 
  • El método espera automáticamente a que se cargue una página nueva si es aplicable. 
  • El elemento a hacer clic, debe ser visible (la altura y el ancho no debe ser igual a cero).

Los comandos Get

Los comandos «Get» ayuda a  buscar varias informaciones importantes sobre la página/elemento. Estos son algunos de los comandos «Get» importantes con los que debe estar familiarizado.
get() Ejemplo de uso:  
  • Abre automáticamente una nueva ventana del explorador y busca la página que especifique dentro de sus paréntesis.
  • Es el equivalente de la orden «Open» del Selenium IDE.
  • El parámetro debe ser un objeto String.
getTitle() Ejemplo de uso:  
  • No necesita parámetros
  • Obtiene el título de la página actual
  • El primer y último espacios en blanco se recortan
  • Devuelve una cadena nula si la página no tiene título
getPageSource() Ejemplo de uso:  
  • No necesita parámetros
  • Devuelve el código fuente de la página como valor de cadena
getCurrentUrl() Ejemplo de uso:  
  • No necesita parámetros
  • Obtiene el valor de tipo String que representa la dirección URL actual que el navegador está mirando
getText() Ejemplo de uso:  
  • Recupera el texto interior del elemento que especifique

Comandos Navigate

Estos comandos le permiten actualizar, entrar y cambiar de un lado a otro entre las diferentes páginas Web.
 
navigate().to() Ejemplo de uso:  
  • Abre automáticamente una nueva ventana del explorador y busca la página que especifique dentro de sus paréntesis.
  • Hace exactamente lo mismo que el método get().
navigate().refresh()Ejemplo de uso:  
  • No necesita parámetros.
  • Actualiza la página actual.
navigate().back()Ejemplo de uso:  
  • No necesita parámetros
  • Te lleva de vuelta por una página en la historia del navegador.
navigate().forward()Ejemplo de uso:  
  • No necesita parámetros.
  • Te lleva adelante por una página en la historia del navegador.

Cerrar y salir de ventanas del navegador

close() Ejemplo de uso:  
  • No necesita parámetros.
  • Sólo cierra la ventana del navegador que actualmente está controlando.
quit() Ejemplo de uso:  
  • No necesita parámetros
  • Se cierran todas las ventanas que Webdriver ha abierto


Comandos comunes selenium webdriver

Para ilustrar claramente la diferencia entre Close() y Quit(), intente ejecutar el código siguiente. Utiliza una página web que automáticamente aparece una ventana sobre la carga de la página y abre otra después de salir.
 
public static void main(String[] args){
  WebDriver driver = new FirefoxDriver();
  driver.get("http://www.popuptest.com/popuptest2.html");
  driver.close();
}
Observe que sólo se cerró la ventana del explorador principal y no las dos ventanas emergentes.
Comandos comunes selenium webdriver
Pero si utiliza quit(), todas las ventanas se cerrarán. No sólo el padre. Pruebe a ejecutar el código de abajo y se dará cuenta de que los dos pop-ups anteriores se cerrarán también automáticamente.
package newproject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG3 {
    public static void main(String[] args) {
     System.setProperty("webdriver.firefox.marionette","C:\geckodriver.exe");
     WebDriver driver = new FirefoxDriver();
        driver.get("http://www.popuptest.com/popuptest2.html");
        driver.quit();  // usando QUIT todas las ventanas se cerraran 
    }
}

Cambiar (switching) entre Frame’s

Para acceder a los elementos de la GUI en un Frame, debemos primero dirigir la unidad de Internet para centrarnos en el freme o ventana emergente antes de poder acceder a los elementos dentro de ellos. Vamos a tomar, por ejemplo, la página web https://seleniumhq.github.io/selenium/docs/api/java/
Comandos comunes selenium webdriver
Esta página tiene 3 Frame cuyos atributos «Name» se indican arriba. Deseamos acceder al vínculo «Deprecated» que se ha enmarcado en amarillo. Para ello, primero debemos decirle a Webdriver para que cambie al Frame «classFrame» usando el método «switchTo().frame()«. Utilizaremos el atributo name del Frame como parámetro para la parte «Frame()».
package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG4 {
   public static void main(String[] args) {
     System.setProperty("webdriver.firefox.marionette","C:\geckodriver.exe");  
     WebDriver driver = new FirefoxDriver();
         driver.get("http://demo.guru99.com/selenium/deprecated.html");
         driver.switchTo().frame("classFrame");
         driver.findElement(By.linkText("Deprecated")).click();
         driver.close(); 
     }
}

Después de ejecutar este código, verá que el Frame «classFrame» se lleva a la página «Deprecated API«, lo que significa que nuestro código ha podido acceder correctamente al vínculo «Deprecated«.

Cambiar (switching) entre ventanas Pop-Up

Selenium Webdriver permite que las ventanas emergentes como las alertas se muestren, a diferencia de Selenium IDE. Para acceder a los elementos dentro de la alerta (como el mensaje que contiene), debemos utilizar el método «switchTo().alerta()». En el código de abajo, usaremos este método para acceder al cuadro de alerta y luego recuperaremos su mensaje usando el método «getText ()» y luego cerraremos automáticamente el cuadro de alerta usando el método «switchTo().alert().accept()».
 
Primero, diríjase a http://jsbin.com/usidix/1 y haga clic manualmente en el botón «Go» y vea por sí mismo el texto del mensaje.
Comandos comunes selenium webdriver
Veamos el código creado con Selenium WebDriver para realizar esto.
package mypackage; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

 public class myclass { 
  public static void main(String[] args) { 

  	System.setProperty("webdriver.firefox.marionette","C:\geckodriver.exe"); 
  	WebDriver driver = new FirefoxDriver(); 
  	String alertMessage = "";

  	driver.get("http://jsbin.com/usidix/1"); 
  	driver.findElement(By.cssSelector("input[value="Go!"]")).click(); 
  	alertMessage = driver.switchTo().alert().getText(); 
  	driver.switchTo().alert().accept();
  	
  	System.out.println(alertMessage); 
  	driver.quit(); 

  } 
 }

On the Eclipse console, notice that the printed alert message is:

Comandos comunes selenium webdriver

Ésto es todo por este tutorial de comandos en Selenium WebDriver, si deseas aprender más sobre Selenium WebDriver, te recomiendo visitar:

Compartir artículo

5 Comments

  1. Responder

    It is really a great work and the way in which you are sharing the knowledge is excellent.Thanks for your informative article

Leave Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.