WebElement em Selenium
โก Resumo Inteligente
WebElement em Selenium representa cada controle de formulรกrio como um objeto programรกvel, permitindo que os testadores interajam com campos de texto, caixas de seleรงรฃo, botรตes de opรงรฃo e elementos de envio usando os mรฉtodos findElement, sendKeys, click, clear e submit. Java exemplos de cรณdigo.

WebElement em Selenium
Os formulรกrios sรฃo elementos fundamentais da web que capturam informaรงรตes dos visitantes de um site. Os formulรกrios web incluem diferentes controles de interface grรกfica, como caixas de texto, campos de senha, caixas de seleรงรฃo, botรตes de opรงรฃo, listas suspensas e campos de entrada de arquivos.
Este tutorial explica como acessar cada elemento do formulรกrio usando Selenium WebDriver com Java. Selenium encapsula cada elemento do formulรกrio como um objeto de WebElement. Ela fornece uma API para localizar elementos e interagir com eles, incluindo inserir texto, clicar em botรตes e enviar formulรกrios. As seรงรตes abaixo abordam os mรฉtodos disponรญveis para cada elemento do formulรกrio.
Introduรงรฃo ao WebElement, findElement(), findElements()
Selenium O WebDriver representa um elemento de formulรกrio simples como um objeto de Elemento Web.
O WebDriver identifica elementos de formulรกrio usando diferentes propriedades do elemento web, incluindo ID, Nome, Classe, XPath, Nome da tag, seletores CSS e texto do link.
O WebDriver fornece os dois mรฉtodos WebElement a seguir para encontrar elementos:
- encontrarElemento() โ Encontra um รบnico elemento web e o retorna como um WebElement Selenium objeto.
- encontrarElementos() โ retorna uma lista de objetos WebElement que correspondem aos critรฉrios do localizador.
O exemplo abaixo mostra como recuperar um รบnico elemento, um campo de texto em uma pรกgina da web, como um objeto WebElement usando o mรฉtodo findElement(). O mรฉtodo findElements() para encontrar vรกrios elementos serรก abordado em tutoriais subsequentes.
Passo 1) Importe o pacote necessรกrio para criar objetos WebElement.
Passo 2) Chame o mรฉtodo findElement() disponรญvel na classe WebDriver para recuperar um objeto WebElement, conforme mostrado abaixo.
Selenium Entrada de texto
As caixas de entrada referem-se a um destes dois tipos:
- Campos de texto - Selenium Caixas de texto de entrada que aceitam valores digitados e os exibem exatamente como foram inseridos.
- Campos de senha โ Caixas de texto que aceitam valores digitados, mas os mascaram como uma sรฉrie de caracteres especiais (geralmente pontos ou asteriscos) para ocultar informaรงรตes confidenciais.
Localizadores
O mรฉtodo findElement() recebe um parรขmetro, que รฉ um localizador que aponta para o elemento. Diferentes localizadores, incluindo By.id(), By.name(), By.xpath() e By.cssSelector(), encontram elementos na pรกgina usando suas propriedades, como id, nome ou caminho.
Vocรช pode usar plugins como o FirePath para obter o ID, o XPath e outros valores de localizaรงรฃo dos elementos.
Usando o site de exemplo https://demo.guru99.com/test/login.htmlO cรณdigo abaixo localiza o campo de texto "Endereรงo de e-mail" usando o localizador de ID e o campo "Senha" usando o localizador de nome.
- O campo de texto do e-mail estรก localizado pelo ID.
- O campo de senha estรก localizado ao lado do nome.
enviar chaves Selenium
enviarTeclas() em Selenium รฉ um mรฉtodo usado para inserir conteรบdo editรกvel em campos de texto e senha durante a execuรงรฃo de testes. Esses campos sรฃo identificados por meio de localizadores como nome, classe e ID. O mรฉtodo estรก disponรญvel no objeto WebElement. Ao contrรกrio do mรฉtodo type, sendKeys() nรฃo substitui o texto existente em uma caixa de texto.
Como inserir texto em Selenium
Para inserir texto em campos de texto e campos de senha, o mรฉtodo sendKeys() estรก disponรญvel no WebElement. Selenium.
Usando o mesmo exemplo de https://demo.guru99.com/test/login.htmlO trecho de cรณdigo abaixo localiza o campo de texto e o campo de senha e insere o texto. Selenium.
- Localize o campo de texto โEndereรงo de e-mailโ usando o localizador de ID.
- Localize o campo โSenhaโ usando o localizador de nome.
- Insira o texto no โEndereรงo de e-mailโ usando o Selenium Mรฉtodo sendKeys.
- Digite uma senha no campo โSenhaโ usando o mรฉtodo sendKeys().
Excluindo valores na entrada Boxes
O Claro() O mรฉtodo apaga o texto dentro de uma caixa de entrada. Este mรฉtodo nรฃo precisa de nenhum parรขmetro. O trecho de cรณdigo abaixo limpa o texto dos campos de e-mail ou senha.
Selenium Clique nos botรตes
O Selenium O botรฃo de clique รฉ acessado atravรฉs do mรฉtodo click().
No exemplo acima
- Encontre o botรฃo para iniciar sessรฃo.
- Clique no botรฃo โEntrarโ na pรกgina de login do site para autenticar.
Selenium Botรตes de envio
Os botรตes de envio enviam o formulรกrio inteiro para o servidor. Vocรช pode chamar o mรฉtodo `click()` no elemento da Web, como mostrado acima, ou usar o mรฉtodo `submit()` em qualquer elemento do formulรกrio ou no prรณprio botรฃo de envio.
Quando o mรฉtodo submit() รฉ utilizado, o WebDriver consulta o DOM para identificar o formulรกrio ao qual o elemento pertence e, em seguida, aciona sua funรงรฃo de envio.
Automaรงรฃo Code
Aqui estรก o cรณdigo completo e funcional.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
guia de soluรงรฃo de problemas
Se vocรช se deparar com a exceรงรฃo NoSuchElementException() ao procurar elementos, significa que o elemento nรฃo estรก presente na pรกgina no momento em que o WebDriver o acessou.
- Verifique novamente seu localizador usando o FirePath ou a opรงรฃo "Inspecionar elemento" no Chrome.
- Verifique se o valor usado no cรณdigo difere do valor atual do elemento exibido no FirePath.
- Alguns atributos sรฃo dinรขmicos para determinados elementos. Se um valor mudar dinamicamente, use `By.xpath()` ou `By.cssSelector()`, que sรฃo mais confiรกveis, mas um pouco mais complexos.
- รs vezes, o problema รฉ uma condiรงรฃo de espera; o WebDriver pode executar o cรณdigo antes que a pรกgina termine de carregar.
- Adicione uma espera antes de findElement() usando esperas implรญcitas ou explรญcitas.
Resumo
- A tabela abaixo resume os comandos para acessar cada tipo de elemento discutido acima.
| Element | Command | Descriรงรฃo |
|---|---|---|
| Entrada Box | sendKeys () | Utilizado para inserir valores em caixas de texto. |
| Claro() | Utilizado para limpar caixas de texto, removendo seu valor atual. | |
| Ligaรงรตes | clique() | Utilizado para clicar no link e aguardar o carregamento completo da pรกgina antes de prosseguir para o prรณximo comando. |
| Submeter | enviar() | Utilizado para submeter o formulรกrio acionando o manipulador de envio do formulรกrio pai. |
- WebDriver permite a seleรงรฃo de mais de uma opรงรฃo em um elemento SELECT mรบltiplo.
- Vocรช pode usar o mรฉtodo submit() em qualquer elemento dentro do formulรกrio. O WebDriver aciona automaticamente a funรงรฃo de envio do formulรกrio ao qual o elemento pertence.






