Redirecionamento de Página Web - Selenium WebDriver

Estou com um problema ao utilizar o Selenium WebDriver, ao acessar uma página web e efetuar o Login é aberto uma segunda página, e então o Selenium WebDriver perde o controle dessa nova página. Alguém pode me ajudar?

Segue o código:

public void deveAcessarPaginal() 
{
	driver.get("https://URLPagina.com");
	driver.findElement(By.linkText("Continuar neste site (não recomendado)."))
			.click();
}

public void deveLogar(String usuarioTexto, String senhaTexto) {

	WebElement usuario = driver.findElement(By.name("usuario"));
	usuario.sendKeys(usuarioTexto);

	WebElement senha = driver.findElement(By.name("senha"));
	senha.sendKeys(senhaTexto);

	// Clica no botão confirmar do login
	driver.findElement(By.xpath("//tr[4]/td/a/img")) 
	      .click();
	
	/*
	 * Nesse momento abre uma outra página e então o Selenium
	 *  não controla mais o navegador.
	 */


	// A nova página abre com a mensagem: 
	// "Continuar neste site (não recomendado)"
	driver.findElement(By.xpath("Continuar neste site (não recomendado)."))
	      .click();
}

Cara, nunca mexi com Selenium, mas antes de alguém te responder com certeza, dá uma olhada nisso aqui:

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));

Fonte: http://www.testingexcellence.com/open-new-tab-browser-using-selenium-webdriver-java/

1 curtida

Opa Beleza?
Uma vez fiz um seminário na faculdade sobre Selenium e fiz uma demonstração utilizando ele,
fiz dessa forma:



package AplicationSelenium;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;


import org.openqa.selenium.firefox.FirefoxDriver;

public class SeleniumFirefox {
    
    public static void main (String args[]){       
   
  
                       
                WebDriver entrar = new FirefoxDriver();
                entrar.get("https://www.google.com.br/");
        
                WebElement buscar = entrar.findElement(By.name("q"));
                buscar.sendKeys("Faculdade Rio Branco");
        
                entrar.get("https://www.google.com.br/");
        
                entrar.get("https://www.google.com.br/");        
        
                entrar.get("https://www.google.com.br/");                 
        
                // login_username é o nome do campo na pagina que você quer fazer login
                WebElement wRA = entrar.findElement(By.id("login_username"));                
                wRA.sendKeys("123456");      
        
                 // login_password é o nome do campo na pagina onde coloca senha
                WebElement wSenha = entrar.findElement(By.id("login_password"));                
                wSenha.sendKeys("abc123");
        
                wSenha.submit();  
            }
        
    }

Veja se isso te ajuda.

Pesssoal, obrigado pelas dicas, mas infelizmente não deu certo.
No momento que o selenium faz o login na aplicação, abre uma outra execução do navegador, nesse momento acho que selenium perde o controle do navegador.

Olá DarkNei, estou enfrentando o mesmo problema, informar as credencias para logar o sistema não continua o fluxo e abre uma segunda instancia do sistema, como você conseguiu contorna essa situação?

Tenta isso:

driver.switchTo().window(null);