‐ o codigo está operacional ‐ Guia de Automação de Elementos de Formulário Web com Selenium Java JUnit - sandersbr/automacao-selenium GitHub Wiki

Guia de Automação de Elementos de Formulário Web com Selenium + Java + JUnit

Fortaleza, segunda-feira, 28 de abril de 2025


Automacao de Formularios Web com Selenium + JUnit (Java)

Estrutura Padrao

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
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.Select;

public class FormularioTest {

    WebDriver driver;

    @Before
    public void setUp() {
        driver = new ChromeDriver();
        driver.get("https://url-do-seu-formulario.com");
    }

    @Test
    public void preencherFormulario() {
        // Exemplos de interacoes estao listados abaixo
    }

    @After
    public void tearDown() {
        driver.quit();
    }
}

Elementos e Interacoes

1. Campo de Texto (<input type="text">)

Localizacao:

WebElement campoTexto = driver.findElement(By.id("campoTextoId"));

Interacao:

campoTexto.sendKeys("Texto a ser digitado");
campoTexto.clear();

2. Area de Texto (<textarea>)

Localizacao:

WebElement areaTexto = driver.findElement(By.id("areaTextoId"));

Interacao:

areaTexto.sendKeys("Texto para a area de texto");
areaTexto.clear();

3. Botao (<button>, <input type="submit">, <input type="button">)

Localizacao:

WebElement botao = driver.findElement(By.id("botaoId"));

Interacao:

botao.click();

4. Link (<a>)

Localizacao:

WebElement link = driver.findElement(By.linkText("Texto do Link"));

Interacao:

link.click();

5. Caixa de Selecao Unica (<select> simples)

Localizacao:

WebElement dropdown = driver.findElement(By.id("selectId"));
Select select = new Select(dropdown);

Interacao:

select.selectByVisibleText("Opcao Desejada");
select.selectByValue("valor");
select.selectByIndex(2);

6. Caixa de Selecao Multipla (<select multiple>)

Localizacao:

WebElement multiSelect = driver.findElement(By.id("multiSelectId"));
Select selectMultiple = new Select(multiSelect);

Interacao:

selectMultiple.selectByVisibleText("Opcao 1");
selectMultiple.selectByVisibleText("Opcao 2");
selectMultiple.deselectByVisibleText("Opcao 1"); // desmarca
selectMultiple.deselectAll(); // desmarca tudo

7. Caixa de Selecao (Checkbox)

Localizacao:

WebElement checkbox = driver.findElement(By.id("checkboxId"));

Interacao:

if (!checkbox.isSelected()) {
    checkbox.click(); // marca
}

if (checkbox.isSelected()) {
    checkbox.click(); // desmarca
}

8. Botao de Opcao (Radio Button)

Localizacao:

WebElement radioButton = driver.findElement(By.id("radioButtonId"));

Interacao:

if (!radioButton.isSelected()) {
    radioButton.click(); // marca
}

9. Upload de Arquivo (<input type="file">)

Localizacao:

WebElement uploadArquivo = driver.findElement(By.id("uploadId"));

Interacao:

uploadArquivo.sendKeys("/caminho/para/seu/arquivo.txt");

10. Imagem (<img>)

Localizacao:

WebElement imagem = driver.findElement(By.id("imagemId"));

Interacao:

imagem.click();

11. Modal (Pop-up)

Localizacao:

WebElement modal = driver.findElement(By.id("modalId"));

Interacao:

modal.click(); // ou qualquer outra interação

12. Mensagem de Erro

Localizacao:

WebElement erro = driver.findElement(By.className("erro-class"));

Interacao:

String mensagemErro = erro.getText();

13. Lista de Itens (<ul> / <ol>)

Localizacao:

List<WebElement> itens = driver.findElements(By.tagName("li"));

Interacao:

for (WebElement item : itens) {
    System.out.println(item.getText());
}

14. Divs e Containers (<div>)

Localizacao:

WebElement div = driver.findElement(By.className("classeDiv"));

Interacao:

div.click();

15. Data e Hora (<input type="date"> / <input type="time">)

Localizacao:

WebElement data = driver.findElement(By.id("dataId"));

Interacao:

data.sendKeys("2025-05-01");

16. Pesquisar/Buscar (<input type="search">)

Localizacao:

WebElement buscar = driver.findElement(By.id("buscarId"));

Interacao:

buscar.sendKeys("Palavra chave");

17. Filtros de Busca (<input type="checkbox" class="filter">)

Localizacao:

WebElement filtro = driver.findElement(By.className("filter-class"));

Interacao:

filtro.click(); // Marca ou desmarca filtro

18. Caixa de Texto de Senha (<input type="password">)

Localizacao:

WebElement senha = driver.findElement(By.id("senhaId"));

Interacao:

senha.sendKeys("minhaSenha123");

19. Icones ou Imagens como Links (<img src="link-to-image">)

Localizacao:

WebElement imagemLink = driver.findElement(By.tagName("img"));

Interacao:

imagemLink.click();

20. Dropdown com valores predefinidos

Localizacao:

WebElement dropdown = driver.findElement(By.id("dropdownId"));
Select select = new Select(dropdown);

Interacao:

select.selectByVisibleText("Escolha uma opção");

21. Tabelas HTML (<table>)

Localizacao:

WebElement tabela = driver.findElement(By.id("tabelaId"));
List<WebElement> linhas = tabela.findElements(By.tagName("tr"));

Interacao:

for (WebElement linha : linhas) {
    System.out.println(linha.getText());
}

22. Elementos Visíveis ou Invisíveis (<div style="display:none">)

Localizacao:

WebElement invisivel = driver.findElement(By.id("invisivelId"));

Interacao:

if (invisivel.isDisplayed()) {
    System.out.println("Elemento visível");
} else {
    System.out.println("Elemento invisível");
}

23. Interacoes em Background (Javascript)

Localizacao:

JavascriptExecutor js = (JavascriptExecutor) driver;

Interacao:

js.executeScript("window.scrollBy(0,250)");

Exemplo Pratico com Todos os Elementos

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
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.Select;

public class FormularioTest {

    WebDriver driver;

    @Before
    public void setUp() {
        driver = new ChromeDriver();
        driver.get("https://url-do-seu-formulario.com");
    }

    @Test
    public void preencherFormulario() {
        WebElement campoTexto = driver.findElement(By.id("campoTextoId"));
        campoTexto.sendKeys("Preenchendo texto");
        campoTexto.clear();

        WebElement areaTexto = driver.findElement(By.id("areaTextoId"));
        areaTexto.sendKeys("Preenchendo textarea");

        WebElement checkbox = driver.findElement(By.id("checkboxId"));
        if (!checkbox.isSelected()) {
            checkbox.click();
        }

        WebElement radioButton = driver.findElement(By.id("radioButtonId"));
        if (!radioButton.isSelected()) {
            radioButton.click();
        }

        WebElement dropdown = driver.findElement(By.id("selectId"));
        Select select = new Select(dropdown);
        select.selectByVisibleText("Opcao 1");

        WebElement multiSelect = driver.findElement(By.id("multiSelectId"));
        Select selectMultiple = new Select(multiSelect);
        selectMultiple.selectByVisibleText("Opcao A");
        selectMultiple.selectByVisibleText("Opcao B");

        WebElement botao = driver.findElement(By.id("botaoId"));
        botao.click();

        WebElement link = driver.findElement(By.linkText("Clique Aqui"));
        link.click();
    }

    @After
    public void tearDown() {
        driver.quit();
    }
}

⚠️ **GitHub.com Fallback** ⚠️