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 InvalidPasswordTest {
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 (neste caso, Chrome)
WebDriver driver = new ChromeDriver();
try {
// 1. Acessar a página de login
driver.get(“https://example.com/login”); // Substitua pela URL da sua página de login
// 2. Localizar o campo de email ou username
WebElement emailField = driver.findElement(By.id(“email”)); // Substitua ‘email’ pelo ID do campo
emailField.sendKeys(“usuario@example.com”); // Substitua por um email válido
// 3. Localizar o campo de senha
WebElement passwordField = driver.findElement(By.id(“password”)); // Substitua ‘password’ pelo ID do campo
passwordField.sendKeys(“senhaIncorreta”); // Substitua por uma senha inválida
// 4. Clicar no botão de login
WebElement loginButton = driver.findElement(By.id(“loginButton”)); // Substitua ‘loginButton’ pelo ID do botão
loginButton.click();
// 5. Verificar a mensagem de erro
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); // Espera explícita
WebElement errorMessage = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(“errorMessage”))); // Substitua pelo seletor correto
String expectedMessage = “Senha incorreta. Por favor, tente novamente.”; // Substitua pela mensagem esperada
if (errorMessage.isDisplayed() && errorMessage.getText().equals(expectedMessage)) {
System.out.println(“Teste bem-sucedido: mensagem de erro exibida corretamente.”);
} else {
System.out.println(“Teste falhou: mensagem de erro não corresponde ao esperado.”);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// Fechar o navegador
driver.quit();
}
}
}
Explicação do Código
- Login com senha incorreta:
- O campo de email é preenchido com um valor válido.
- O campo de senha é preenchido com um valor incorreto.
- Verificação da mensagem de erro:
- É usada uma espera explícita (
WebDriverWait
) para aguardar que a mensagem de erro esteja visível na página. - O texto da mensagem de erro (
errorMessage.getText()
) é comparado com o texto esperado.
- É usada uma espera explícita (
- Validação do teste:
- O teste verifica se o elemento da mensagem está visível e se o texto exibido é igual ao esperado.
- Finalização:
- O navegador é fechado no final do teste, independentemente do resultado.
Aprimoramentos
- Mensagens dinâmicas:
- Se o texto da mensagem de erro pode mudar, considere usar
contains()
para verificar palavras-chave:
- Se o texto da mensagem de erro pode mudar, considere usar
- Logs:
- Adicione logs detalhados para cada etapa do teste, usando uma biblioteca como SLF4J ou Log4j.
- Uso de Frameworks:
- Integre com frameworks de testes como JUnit ou TestNG para relatórios estruturados e execução paralela.