import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;
public class SuccessfulLoginRedirectTest {
public static void main(String[] args) {
// Configurar o caminho do ChromeDriver (substitua pelo caminho correto)
System.setProperty(“webdriver.chrome.driver”, “caminho/para/chromedriver”);
// Criar uma instância do WebDriver
WebDriver driver = new ChromeDriver();
try {
// Configurações iniciais
String loginPageUrl = “https://example.com/login”; // Substitua pela URL da página de login
String expectedRedirectUrl = “https://example.com/dashboard”; // URL esperada após login bem-sucedido
String email = “usuario@example.com”; // Credenciais válidas
String password = “senhaValida”; // Substitua por uma senha válida
// Acessar a página de login
driver.get(loginPageUrl);
// Localizar e preencher o campo de email
WebElement emailField = driver.findElement(By.id(“email”)); // Substitua ‘email’ pelo ID correto
emailField.clear();
emailField.sendKeys(email);
// Localizar e preencher o campo de senha
WebElement passwordField = driver.findElement(By.id(“password”)); // Substitua ‘password’ pelo ID correto
passwordField.clear();
passwordField.sendKeys(password);
// Clicar no botão de login
WebElement loginButton = driver.findElement(By.id(“loginButton”)); // Substitua ‘loginButton’ pelo ID correto
loginButton.click();
// Aguardar até que o redirecionamento ocorra
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.urlToBe(expectedRedirectUrl));
// Verificar se a URL atual é a URL esperada
String currentUrl = driver.getCurrentUrl();
if (currentUrl.equals(expectedRedirectUrl)) {
System.out.println(“Teste bem-sucedido: Redirecionamento após login foi para ” + currentUrl);
} else {
System.out.println(“Teste falhou: Redirecionamento esperado era ” + expectedRedirectUrl + “, mas foi para ” + currentUrl);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// Fechar o navegador
driver.quit();
}
}
}
Explicação do Código
- Credenciais válidas:
- O campo de email e senha é preenchido com credenciais válidas (
email
epassword
).
- O campo de email e senha é preenchido com credenciais válidas (
- Redirecionamento esperado:
- Após o login, o sistema aguarda ser redirecionado para a URL esperada (
expectedRedirectUrl
).
- Após o login, o sistema aguarda ser redirecionado para a URL esperada (
- Validação da URL:
- O método
getCurrentUrl()
é usado para capturar a URL atual. - Essa URL é comparada com a URL esperada.
- O método
- Espera explícita:
- A espera explícita com
urlToBe()
aguarda que o redirecionamento para a URL esperada ocorra antes de verificar.
- A espera explícita com
- Mensagens no console:
- Mensagens de sucesso ou falha são exibidas no console para informar o status do teste.
Aprimoramentos
- Verificação de elementos na página de destino:
- Para garantir que a página carregou completamente, você pode validar a presença de um elemento exclusivo na página de destino, como um título ou menu.
- Frameworks para relatórios:
- Integre com JUnit ou TestNG para relatórios e organização dos testes.
- Testes em diferentes navegadores:
- Configure seu WebDriver para suportar múltiplos navegadores (Chrome, Firefox, etc.).