Seletor CSS em Selenium
โก Resumo Inteligente
Seletor CSS em Selenium รฉ uma poderosa estratรฉgia de localizaรงรฃo que identifica elementos usando tags HTML, IDs, classes, atributos e padrรตes de texto interno. Este recurso explica cada tipo de seletor CSS com exemplos passo a passo para Selenium IDE.

O que รฉ um seletor CSS? Selenium?
A Seletor CSS em Selenium Um seletor CSS รฉ um padrรฃo de string que identifica um elemento web atravรฉs de uma combinaรงรฃo de tag HTML, ID, classe e atributos. Os seletores CSS sรฃo um pouco mais avanรงados do que a localizaรงรฃo por ID ou nome, mas sรฃo a estratรฉgia mais popular entre desenvolvedores experientes. Selenium usuรกrios porque eles podem acessar elementos que nรฃo possuem nenhum atributo ID ou Nome.
Seletores CSS em Selenium Podem assumir muitas formas, mas este guia se concentra nos cinco padrรตes mais comuns usados โโem Selenium AQUI:
- Etiqueta e ID
- Etiqueta e classe
- Tag e Atributo
- Tag, classe e atributo
- Texto interno
Ao usar essa estratรฉgia em Selenium IDE, sempre prefixe o Target caixa com โcss=โ como demonstrado em cada exemplo abaixo.
Por que usar seletores CSS em Selenium?
Os seletores CSS sรฃo a estratรฉgia de localizaรงรฃo preferida para muitos. Selenium Engenheiros de automaรงรฃo, pois eles equilibram velocidade, flexibilidade e legibilidade. Aplicativos web modernos frequentemente usam IDs gerados dinamicamente ou removem completamente os atributos de nome, deixando os seletores CSS como a รบnica maneira confiรกvel de selecionar um elemento especรญfico na pรกgina.
As principais vantagens de usar seletores CSS incluem:
- Desempenho: Os seletores CSS sรฃo processados โโpelo mecanismo nativo do navegador, portanto, sรฃo executados mais rapidamente do que expressรตes XPath equivalentes, especialmente em navegadores mais antigos, como o Internet Explorer.
- Flexibilidade: Eles combinam lรณgica de tag, classe, atributo e correspondรชncia parcial, permitindo que os testadores identifiquem elementos que nรฃo possuem um ID estรกvel.
- Legibilidade: A sintaxe espelha a forma como os desenvolvedores jรก escrevem regras CSS, o que reduz a curva de aprendizado tanto para os engenheiros de controle de qualidade quanto para as equipes de front-end.
- Estabilidade entre navegadores: Os seletores CSS se comportam de maneira consistente no Chrome. FirefoxEdge e Safari, reduzindo falhas intermitentes em testes.
Seletor CSS de tags e IDs
Este exemplo utiliza a caixa de texto de e-mail na pรกgina de login do Facebook. O elemento tem o ID โE-mailโ, e jรก havia sido acessado na seรงรฃo โLocalizando por IDโ. Agora, o mesmo elemento รฉ alvo usando um Selenium Seletor CSS com o atributo ID.
Sintaxe
css=tag#id
- tag = a tag HTML do elemento que estรก sendo acessado
- # = o sinal de cerquilha (ou hash), que deve estar sempre presente ao usar um Selenium Seletor CSS com ID
- id = o ID do elemento que estรก sendo acessado
Lembre-se de que o ID รฉ sempre precedido por um sinal de cerquilha (#).
Passo 1) Acessar www.facebook.comUtilizando as ferramentas de desenvolvedor do seu navegador (ou uma ferramenta legada como o Firebug), inspecione a caixa de texto "Email ou Telefone".
Observe que a tag HTML รฉ โentradae seu ID รฉ โE-mailO seletor CSS completo torna-se, portanto, โcss=entrada#e-mail".
Passo 2) Entrar "css=entrada#e-mail" no Target caixa de Selenium IDE e clique no botรฃo Localizar. Selenium O IDE destaca o elemento correspondente na pรกgina.
Seletor CSS de Tag e Classe
Um seletor CSS em Selenium que usa uma tag HTML e um nome de classe segue a mesma ideia de tag e ID, mas um ponto (.) substitui o sinal de cerquilha.
Sintaxe
css=tag.class
- tag = a tag HTML do elemento que estรก sendo acessado
- . = o sinal de ponto, que deve sempre estar presente ao usar um seletor CSS com classe.
- class = a classe do elemento que estรก sendo acessado
Passo 1) Abra a pรกgina de demonstraรงรฃo. https://demo.guru99.com/test/facebook.html e examine a caixa de texto โEmail ou Telefoneโ. Observe que a tag HTML รฉ โentradae sua classe รฉ โtexto de entrada".
Passo 2) In Selenium IDE, digite โcss = entrada.inputtexto"Na Target caixa e clique em Localizar. Selenium O IDE reconhece a caixa de texto de e-mail ou telefone.
Observe que, quando vรกrios elementos compartilham a mesma tag HTML e classe, apenas o primeiro elemento correspondente no cรณdigo-fonte รฉ reconhecido. Examine a caixa de texto "Senha" na mesma pรกgina e observe que ela pertence ร mesma classe que as caixas de texto "E-mail" ou "Telefone".
Na ilustraรงรฃo anterior, apenas a caixa de texto "E-mail" ou "Telefone" foi destacada porque aparece primeiro no cรณdigo-fonte da pรกgina.
Seletor CSS de tag e atributo
Essa estratรฉgia combina uma tag HTML com um atributo especรญfico pertencente ao elemento que vocรช deseja acessar.
Sintaxe
css=tag[attribute=value]
- tag = a tag HTML do elemento que estรก sendo acessado
- [ e ] = colchetes que envolvem o atributo e seu valor correspondente
- atributo = o atributo a ser usado. Escolha um que seja exclusivo do elemento, como nome ou id.
- valor = o valor correspondente do atributo escolhido.
Passo 1) Navegue atรฉ a Mercury Pรกgina de inscriรงรฃo para excursรตes https://demo.guru99.com/test/newtours/register.php e examine a caixa de texto โSobrenomeโ. Observe sua tag HTML (โinputโ) e seu atributo name (โlastNameโ).
Passo 2) In Selenium IDE, digite โcss=input[nome=sobrenome]"Na Target caixa e clique em Localizar. Selenium O IDE localizou com sucesso o campo Sobrenome.
Quando vรกrios elementos compartilham a mesma tag HTML e atributo, apenas o primeiro รฉ reconhecido. O comportamento รฉ idรชntico ao de localizar elementos com a mesma tag e classe.
Seletores CSS: Tag, Classe e Atributo
Sintaxe
css=tag.class[attribute=value]
- tag = a tag HTML do elemento que estรก sendo acessado
- . = o sinal de ponto, que deve sempre estar presente ao usar um seletor CSS com classe.
- class = a classe do elemento que estรก sendo acessado
- [ e ] = colchetes que envolvem um atributo especรญfico e seu valor correspondente
- atributo = o atributo a ser usado. Escolha um que seja exclusivo do elemento, como nome ou id.
- valor = o valor correspondente do atributo escolhido.
Passo 1) Abra a pรกgina de demonstraรงรฃo. https://demo.guru99.com/test/facebook.html e examine os campos de entrada โEmail ou Telefoneโ e โSenhaโ. Observe a tag HTML, a classe e os atributos. Este exemplo usa o โรญndice de tabulaรงรฃoatributo โ.
Passo 2) Acesse primeiro a caixa de texto โE-mail ou Telefoneโ usando um valor de tabulaรงรฃo de 1. Digite โcss=input.inputtext[tabindex=1]" para dentro Selenium IDE's Target Na caixa de diรกlogo, clique em "Localizar". O campo "E-mail" ou "Telefone" serรก destacado.
Passo 3) Para selecionar a caixa de entrada de senha, basta substituir o valor do รญndice tabulado. Digite โcss=input.inputtext[tabindex=2]"Na Target caixa e clique em Localizar. Selenium O IDE localizou com sucesso a caixa de texto Senha.
Texto interno โ Seletor CSS
Os rรณtulos HTML raramente recebem atributos como id, name ou class. Entรฃo, como vocรช pode acessรก-los em HTML? SeleniumA resposta estรก em seu texto interior. Os textos internos sรฃo os padrรตes de string reais que o rรณtulo HTML exibe na pรกgina.
Sintaxe
css=tag:contains("inner text")
- tag = a tag HTML do elemento que estรก sendo acessado
- texto interno = o conteรบdo de texto visรญvel do elemento
Passo 1) Navegue atรฉ a Mercury Pรกgina inicial dos passeios https://demo.guru99.com/test/newtours/ Examine o rรณtulo โSenhaโ. Observe sua tag HTML (โfontโ, neste caso) e note que o elemento nรฃo possui atributos de classe, id ou nome.
Passo 2) Formato css=font:contains(โSenha:โ) para dentro Selenium IDE's Target caixa e clique em Localizar. Selenium O IDE localiza o rรณtulo Senha conforme mostrado abaixo.
Passo 3) Desta vez, substitua o texto interno por โBostonโ para que Target torna-se โcss=font:contains(โBostonโ)Clique em "Localizar". A etiqueta "Boston a Sรฃo Francisco" estรก destacada, demonstrando que Selenium O IDE consegue localizar um rรณtulo longo mesmo quando apenas a primeira palavra do seu texto interno รฉ fornecida.
Seletor CSS vs XPath em Selenium
Tanto os seletores CSS quanto o XPath sรฃo usados โโpara identificar elementos da web em SeleniumApesar disso, elas possuem pontos fortes diferentes. A tabela abaixo compara as duas estratรฉgias de localizaรงรฃo em dimensรตes-chave:
| Critรฉrios | Seletor de CSS | XPath |
|---|---|---|
| Agilidade (Speed) | Mais rรกpido, funciona no mecanismo nativo do navegador. | Mais lento, especialmente em navegadores mais antigos. |
| Direรงรฃo | Somente encaminhar (de pai para filho) | Para frente e para trรกs (da crianรงa para o pai) |
| Sintaxe | Mais conciso e semelhante ร s regras CSS. | Expressรตes de caminho hierรกrquicas mais longas |
| Correspondรชncia de texto | Limitado ร pseudoclasse :contains() | Funรงรตes texto forte() e contรฉm() |
| Melhor para | Layouts estรกticos e aplicativos web modernos | Percurso complexo do DOM e localizadores baseados em texto |
Melhores prรกticas para escrever seletores CSS em Selenium
Escrever seletores CSS confiรกveis โโvai alรฉm do conhecimento da sintaxe. As prรกticas a seguir ajudam os testadores a criar seletores estรกveis โโe de fรกcil manutenรงรฃo. Selenium Scripts que sobrevivem a alteraรงรตes na interface do usuรกrio:
- Atributos exclusivos preferenciais: Sempre escolha atributos como id, data-test-id ou name que sejam adicionados explicitamente para automaรงรฃo. Eles permanecem estรกveis โโmesmo quando o layout visual muda.
- Evite seletores excessivamente aninhados: Cadeias longas como
div > div > ul > li > aQuebre facilmente quando os desenvolvedores refatorarem a marcaรงรฃo. Mantenha os seletores o mais curtos possรญvel. - Use correspondรชncias parciais com sabedoria: Padrรตes como
[class*="btn-primary"]toleram pequenas alteraรงรตes nos nomes das classes, mas tambรฉm podem corresponder a elementos nรฃo intencionais. - Evite localizadores baseados em รญndice: Seletores como
nth-child(3)sรฃo frรกgeis porque adicionar um elemento irmรฃo desloca todas as suas posiรงรตes. - Validar seletores nas Ferramentas de Desenvolvedor: Antes de executar um Selenium No script, cole o seletor no Console das Ferramentas de Desenvolvedor do Chrome usando
document.querySelector()Para confirmar, retorna exatamente um elemento. - Combine atributos para garantir exclusividade: Quando uma classe รฉ compartilhada por muitos elementos, adicione um filtro de atributo como:
input.form-control[name="email"]Para desambiguar o alvo. - Documentar e reutilizar: Centralize os seletores dentro de uma classe Page Object para que uma รบnica atualizaรงรฃo corrija todos os testes que fazem referรชncia ao mesmo elemento.
Seguir essas diretrizes reduz a instabilidade, melhora a velocidade de execuรงรฃo dos testes e torna Selenium Suรญtes mais fรกceis de manter ao longo do tempo.
Resumo: Referรชncia rรกpida da sintaxe dos seletores CSS
A tabela abaixo consolida todas as informaรงรตes. Selenium Padrรตes de seletores CSS abordados neste guia:
| Forma | Target Sintaxe | Exemplo |
|---|---|---|
| Etiqueta e ID | css=tag#id | css=entrada#e-mail |
| Etiqueta e classe | css=tag.class | css = entrada.inputtexto |
| Tag e Atributo | css=tag[atributo=valor] | css=input[nome=sobrenome] |
| Tag, classe e atributo | css=tag.class[atributo=valor] | css=input.inputtext[tabindex=1] |
| Texto interno | css=tag:contains(โtextoโ) | css=font:contains(โSenha:โ) |














