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 EmptyPasswordFieldTest {
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. Não preencher o campo de senha
WebElement passwordField = driver.findElement(By.id(“password”)); // Substitua ‘password’ pelo ID do campo
passwordField.clear(); // Garante que o campo está vazio
// 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.visibilityOf
Explicação do Código
- Preenchendo apenas o email:
- O campo de email é preenchido com um valor válido.
- O campo de senha é deixado vazio usando o método
clear()
.
- Verificação da mensagem de erro:
- Uma espera explícita (
WebDriverWait
) aguarda a exibição da mensagem de erro. - O texto da mensagem é comparado com o valor esperado (
"O campo de senha é obrigatório."
).
- Uma espera explícita (
- Validação do teste:
- O teste verifica se o elemento da mensagem está visível e se o texto exibido corresponde ao esperado.
- Finalização:
- O navegador é fechado no final do teste, independentemente do resultado.
Aprimoramentos
- Mensagens dinâmicas:
- Se o texto da mensagem variar, use
contains()
para verificar partes específicas:
- Se o texto da mensagem variar, use
- Multiplos campos obrigatórios:
- Adicione verificações semelhantes para outros campos obrigatórios.
- Integração com frameworks:
- Use JUnit ou TestNG para organizar e relatar testes automaticamente.