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 LogoutTest {
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 dashboardUrl = “https://example.com/dashboard”; // URL da página após login
String email = “usuario@example.com”; // Credenciais válidas
String password = “senhaValida”; // Substitua por uma senha válida
// 1. Acessar a página de login
driver.get(loginPageUrl);
// 2. Realizar o login
WebElement emailField = driver.findElement(By.id(“email”)); // Substitua ‘email’ pelo ID correto
emailField.clear();
emailField.sendKeys(email);
WebElement passwordField = driver.findElement(By.id(“password”)); // Substitua ‘password’ pelo ID correto
passwordField.clear();
passwordField.sendKeys(password);
WebElement loginButton = driver.findElement(By.id(“loginButton”)); // Substitua ‘loginButton’ pelo ID correto
loginButton.click();
// 3. Aguardar o redirecionamento para o dashboard
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.urlToBe(dashboardUrl));
// 4. Localizar e clicar no botão de logout
WebElement logoutButton = driver.findElement(By.id(“logoutButton”)); // Substitua ‘logoutButton’ pelo ID correto
logoutButton.click();
// 5. Verificar se o usuário foi redirecionado para a página de login
wait.until(ExpectedConditions.urlToBe(loginPageUrl));
String currentUrl = driver.getCurrentUrl();
if (currentUrl.equals(loginPageUrl)) {
System.out.println(“Teste bem-sucedido: Logout realizado com sucesso.”);
} else {
System.out.println(“Teste falhou: Redirecionamento após logout não está correto.”);
}
// 6. Verificar se a sessão foi encerrada (opcional)
WebElement emailFieldAfterLogout = driver.findElement(By.id(“email”)); // Substitua ‘email’ pelo ID correto
if (emailFieldAfterLogout.isDisplayed()) {
System.out.println(“Sessão encerrada: Login não permanece após logout.”);
} else {
System.out.println(“Sessão ativa: Logout não encerrou a sessão.”);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// Fechar o navegador
driver.quit();
}
}
}
Explicação do Código
- Login antes do teste de logout:
- O teste começa realizando o login na aplicação usando credenciais válidas.
- Clicar no botão de logout:
- O botão de logout é localizado pelo seletor (ID) e clicado.
- Verificar redirecionamento:
- O teste valida se o usuário foi redirecionado para a página de login (
loginPageUrl
).
- O teste valida se o usuário foi redirecionado para a página de login (
- Sessão encerrada:
- Após o logout, o teste verifica se o campo de email está disponível para um novo login, indicando que a sessão foi encerrada corretamente.
- Mensagens no console:
- Mensagens de sucesso ou falha são exibidas no console para indicar o status do teste.
Aprimoramentos
- Testar acesso após logout:
- Tente acessar diretamente a URL do dashboard após o logout e verifique se o usuário é redirecionado para a página de login.
- Testar outros navegadores:
- Teste o logout em navegadores diferentes (Chrome, Firefox, etc.) para garantir consistência.
- Frameworks de Teste:
- Use JUnit ou TestNG para relatórios e organização.