Saltar al contenido

¿Cómo abrir una nueva pestaña usando Selenium WebDriver e iniciar el enlace?

Solución:

Código:

WebDriver wd = new FirefoxDriver();
wd.get("http://www.gmail.com");

wd.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);    
wd.manage().window().maximize();
//To open a new tab         
Robot r = new Robot();                          
r.keyPress(KeyEvent.VK_CONTROL); 
r.keyPress(KeyEvent.VK_T); 
r.keyRelease(KeyEvent.VK_CONTROL); 
r.keyRelease(KeyEvent.VK_T);    
//To switch to the new tab
ArrayList<String> tabs = new ArrayList<String>(wd.getWindowHandles());
wd.switchTo().window(tabs.get(1));
//To navigate to new link/URL in 2nd new tab
wd.get("http://facebook.com");

La única forma de abrir enlaces en nuevas pestañas es simulando atajos del teclado. Lo siguiente es válido en FFX, Chrome e IE

  1. Ctrl + t abrirá una nueva pestaña en blanco y cambiará el foco a ella.
  2. Manteniendo presionada la tecla Ctrl, luego haciendo clic en el enlace, se abrirá el enlace en una nueva pestaña, pero dejará el foco en la pestaña existente.
  3. Manteniendo presionada la tecla Ctrl Y Mayús, luego haciendo clic se abrirá el enlace en una nueva pestaña Y moverá el foco a la nueva pestaña.
  4. Ctrl + w cerrará la pestaña actual y cambiará el enfoque a la última pestaña abierta (aunque tenga en cuenta que Ctrl + W, es decir, Ctrl + Shift + w cerrará TODAS las pestañas).

Selenium no tiene (actualmente) ningún concepto de pestañas dentro de una ventana del navegador, por lo que para abrir la pestaña y luego probarla, TIENE que usar la opción 3.

El siguiente código ejecutará la opción 3. y luego cerrará inmediatamente esa nueva pestaña. (C ª#)

new Actions(WebDriver)
    .KeyDown(Keys.Control)
    .KeyDown(Keys.Shift)
    .Click(tab)
    .KeyUp(Keys.Shift)
    .KeyUp(Keys.Control)
    .Perform();

new Actions(WebDriver)
    .SendKeys(Keys.Control + "w")
    .Perform();

También puedes usar:

.MoveToElement(tab)
.Click()

en medio de la primera opción, y

.KeyDown(Keys.Control)
.KeyDown("w")
.KeyUp("w")
.KeyUp(Keys.Control)

en el segundo.

/ * Abrir una nueva pestaña en el navegador * /

public void openNewTab()

{
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
    ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(0));

}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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