Selector CSS în Selenium
⚡ Rezumat inteligent
Selector CSS în Selenium este o strategie puternică de localizare care identifică elementele folosind etichete HTML, ID-uri, clase, atribute și modele de text intern. Această resursă explică fiecare tip de selector CSS cu exemple pas cu pas pentru Selenium SDI.

Ce este un selector CSS în Selenium?
A Selector CSS în Selenium este un model de șir de caractere care identifică un element web printr-o combinație de etichete HTML, ID, clasă și atribute. Selectorii CSS sunt puțin mai avansați decât localizarea după ID sau Nume, dar sunt cea mai populară strategie printre utilizatorii experimentați. Selenium utilizatori deoarece pot accesa elemente care nu au deloc atributul ID sau Name.
Selectoare CSS în Selenium vin în multe forme, dar acest ghid se concentrează pe cinci dintre cele mai comune modele utilizate în Selenium SDI:
- Etichetă și ID
- Etichetă și clasă
- Etichetă și atribut
- Etichetă, clasă și atribut
- Text interior
Când se folosește această strategie în Selenium IDE, întotdeauna prefixul Target cutie cu „css=„”, așa cum se demonstrează în fiecare exemplu de mai jos.
De ce să folosiți selectorii CSS în Selenium?
Selectorii CSS sunt strategia de localizare preferată pentru mulți Selenium ingineri de automatizare, deoarece oferă un echilibru între viteză, flexibilitate și lizibilitate. Aplicațiile web moderne utilizează adesea ID-uri generate dinamic sau elimină complet atributele de nume, lăsând selectorii CSS ca singura modalitate fiabilă de a viza un anumit element de pe pagină.
Principalele avantaje ale utilizării selectorilor CSS includ:
- Performanță: Selectorii CSS sunt procesați de motorul nativ al browserului, deci se execută mai rapid decât expresiile XPath echivalente, în special în browserele mai vechi, cum ar fi Internet Explorer.
- Flexibilitate: Acestea combină logica de etichete, clase, atribute și potriviri parțiale, permițând testerilor să vizeze elementele cărora le lipsește un ID stabil.
- lizibilitate: Sintaxa reflectă modul în care dezvoltatorii scriu deja reguli CSS, ceea ce scurtează curba de învățare atât pentru inginerii de asigurare a calității, cât și pentru echipele front-end.
- Stabilitate pe mai multe browsere: Selectorii CSS se comportă uniform în Chrome, Firefox, Edge și Safari, reducând eșecurile instabile ale testelor.
Etichetă și ID – Selector CSS
Acest exemplu folosește caseta text Email de pe pagina de conectare Facebook. Elementul are ID-ul „e-mail„și a fost deja accesat în secțiunea „Localizare după ID”. Acum același element este vizat folosind un Selenium Selector CSS cu atributul ID.
Sintaxă
css=tag#id
- tag = eticheta HTML a elementului accesat
- # = semnul diez, care trebuie să fie întotdeauna prezent atunci când se utilizează un Selenium Selector CSS cu ID
- id = ID-ul elementului accesat
Rețineți că ID-ul este întotdeauna precedat de un semn hash (#).
Pas 1) Navigheaza catre www.facebook.comFolosind DevTools-ul browserului dvs. (sau un instrument vechi, cum ar fi Firebug), verificați caseta de text „E-mail sau telefon”.
Observați că eticheta HTML este „intrare„ și ID-ul său este „e-mail„. Prin urmare, selectorul CSS complet devine „css=input#email".
Pas 2) Introduce "css=input#email" în Target cutie de Selenium IDE și faceți clic pe butonul Găsiți. Selenium IDE evidențiază elementul corespunzător pe pagină.
Etichetă și clasă – Selector CSS
Un selector CSS în Selenium care folosește o etichetă HTML și un nume de clasă urmează aceeași idee ca eticheta și ID-ul, dar un punct (.) înlocuiește semnul diez.
Sintaxă
css=tag.class
- tag = eticheta HTML a elementului accesat
- . = semnul punct, care trebuie să fie întotdeauna prezent atunci când se utilizează un Selector CSS cu clasa
- class = clasa elementului accesat
Pas 1) Deschide pagina demo https://demo.guru99.com/test/facebook.html și verificați caseta de text „E-mail sau telefon”. Rețineți că eticheta HTML este „intrare„ și clasa sa este „text de intrare".
Pas 2) In Selenium IDE, introduceți „css=input.inputtext" in Target casetă și faceți clic pe Găsiți. Selenium IDE recunoaște caseta text Email sau Phone.
Rețineți că atunci când mai multe elemente au aceeași etichetă și clasă HTML, este recunoscut doar primul element corespondent din codul sursă. Inspectați caseta text Parolă de pe aceeași pagină și observați că are aceeași clasă ca și caseta text E-mail sau Telefon.
În ilustrația anterioară a fost evidențiată doar caseta text E-mail sau Telefon, deoarece apare prima în sursa paginii.
Etichetă și atribut – Selector CSS
Această strategie combină o etichetă HTML cu un atribut specific aparținând elementului pe care doriți să îl accesați.
Sintaxă
css=tag[attribute=value]
- tag = eticheta HTML a elementului accesat
- [și] = paranteze pătrate care încadrează atributul și valoarea sa corespunzătoare
- attribute = atributul de utilizat. Alegeți unul care este unic pentru element, cum ar fi name sau id.
- valoare = valoarea corespunzătoare a atributului ales.
Pas 1) Navigați către Mercury Pagina de înregistrare a tururilor https://demo.guru99.com/test/newtours/register.php și inspectați caseta de text „Nume”. Observați eticheta HTML („input”) și atributul name („lastName”).
Pas 2) In Selenium IDE, introduceți „css=input[nume=lastName]" in Target casetă și faceți clic pe Găsiți. Selenium IDE localizează cu succes câmpul Nume.
Când mai multe elemente au în comun aceeași etichetă și atribut HTML, doar primul este recunoscut. Comportamentul este identic cu localizarea elementelor cu aceeași etichetă și clasă.
Etichetă, clasă și atribut – Selector CSS
Sintaxă
css=tag.class[attribute=value]
- tag = eticheta HTML a elementului accesat
- . = semnul punct, care trebuie să fie întotdeauna prezent atunci când se utilizează un Selector CSS cu clasa
- class = clasa elementului accesat
- [și] = paranteze pătrate care încadrează un atribut specific și valoarea sa corespunzătoare
- attribute = atributul de utilizat. Alegeți unul care este unic pentru element, cum ar fi name sau id.
- valoare = valoarea corespunzătoare a atributului ales.
Pas 1) Deschide pagina demo https://demo.guru99.com/test/facebook.html și verificați casetele de introducere „E-mail sau telefon” și „Parolă”. Notați eticheta HTML, clasa și atributele acestora. Acest exemplu folosește „tabindex„atribut”.
Pas 2) Accesați mai întâi caseta de text „E-mail sau telefon” utilizând o valoare tabindex de 1. Introduceți „css=input.inputtext[tabindex=1]”În Selenium IDE-urile Target și faceți clic pe Găsire. Câmpul E-mail sau Telefon este evidențiat.
Pas 3) Pentru a viza caseta de introducere a parolei, pur și simplu înlocuiți valoarea tabindex. Introduceți „css=input.inputtext[tabindex=2]" in Target casetă și faceți clic pe Găsiți. Selenium IDE localizează cu succes caseta text Parolă.
Text interior – Selector CSS
Etichetele HTML rareori primesc atribute de tip id, name sau class. Deci, cum le accesați în SeleniumRăspunsul este prin textul lor interior. Textele interne sunt modelele de șiruri de caractere pe care eticheta HTML le afișează pe pagină.
Sintaxă
css=tag:contains("inner text")
- tag = eticheta HTML a elementului accesat
- text interior = conținutul text vizibil al elementului
Pas 1) Navigați către Mercury Pagina principală a excursiilor https://demo.guru99.com/test/newtours/ și inspectați eticheta „Parolă”. Observați eticheta sa HTML („font” în acest caz) și observați că elementul nu are atribute de tip class, id sau name.
Pas 2) Tip css=font:contains(„Parola:”) în Selenium IDE-urile Target casetă și faceți clic pe Găsiți. Selenium IDE localizează eticheta Parolă așa cum se arată mai jos.
Pas 3) De data aceasta, înlocuiți textul interior cu „Boston”, astfel încât Target devine „css=font:conține(„Boston”)„. Faceți clic pe Găsire. Eticheta „Boston către San Francisco” este evidențiată, demonstrând că Selenium IDE poate localiza o etichetă lungă chiar și atunci când este furnizat doar primul cuvânt din textul său intern.
Selector CSS vs. XPath în Selenium
Atât selectorii CSS, cât și XPath sunt utilizați pentru a identifica elementele web din Selenium, însă au puncte forte diferite. Tabelul de mai jos compară cele două strategii de localizare pe baza unor dimensiuni cheie:
| Criterii | Selector CSS | XPath |
|---|---|---|
| Viteză | Mai rapid, rulează pe motorul nativ al browserului | Mai lent, mai ales în browserele mai vechi |
| Direcţie | Numai înainte (de la părinte la copil) | Înainte și înapoi (de la copil la părinte) |
| Sintaxă | Mai scurt și similar cu regulile CSS | Expresii de cale mai lungi, ierarhice |
| Potrivirea textului | Limitat la pseudo-clasa :contains() | Funcții puternice text() și contains() |
| Cel mai bun pentru | Machete statice și aplicații web moderne | Traversare DOM complexă și localizatori bazați pe text |
Cele mai bune practici pentru scrierea selectorilor CSS în Selenium
Scrierea selectorilor CSS fiabili depășește simpla cunoaștere a sintaxei. Următoarele practici îi ajută pe testeri să creeze selectori CSS stabili și ușor de întreținut. Selenium scripturi care supraviețuiesc modificărilor interfeței utilizator:
- Preferă atribute unice: Alegeți întotdeauna atributele id, data-test-id sau name care sunt adăugate explicit pentru automatizare. Acestea rămân stabile chiar și atunci când aspectul vizual se modifică.
- Evitați selectorii imbricați excesiv: Lanțuri lungi, cum ar fi
div > div > ul > li > ase pot strica ușor atunci când dezvoltatorii refactorizează markup-ul. Păstrați selectorii cât mai scurți posibil. - Folosește potrivirile parțiale cu înțelepciune: Modele precum
[class*="btn-primary"]tolerează modificări minore ale numelor de clase, dar se pot potrivi și cu elemente neintenționate. - Evitați localizatorii bazați pe index: Selectori precum
nth-child(3)sunt fragile deoarece adăugarea unui element frate schimbă fiecare poziție. - Validați selectorii în DevTools: Înainte de a alerga a Selenium script, lipiți selectorul în consola Chrome DevTools folosind
document.querySelector()pentru a confirma că returnează exact un element. - Combină atributele pentru unicitate: Când o clasă este partajată de mai multe elemente, adăugați un filtru de atribute, cum ar fi
input.form-control[name="email"]pentru a dezambiguiza ținta. - Documentați și reutilizați: Centralizează selectorii în cadrul unei clase de obiecte de pagină, astfel încât o singură actualizare să corecteze fiecare test care face referire la același element.
Respectarea acestor instrucțiuni reduce instabilitatea, îmbunătățește viteza de execuție a testelor și face ca Selenium suite mai ușor de întreținut în timp.
Rezumat: Referință rapidă pentru sintaxa selectorului CSS
Tabelul de mai jos consolidează fiecare Selenium Modelul CSS Selector prezentat în acest ghid:
| Metodă | Target Sintaxă | Exemplu |
|---|---|---|
| Etichetă și ID | css=tag#id | css=input#email |
| Etichetă și clasă | css=tag.class | css=input.inputtext |
| Etichetă și atribut | css=tag[atribut=valoare] | css=input[nume=lastName] |
| Etichetă, clasă și atribut | css=tag.class[atribut=valoare] | css=input.inputtext[tabindex=1] |
| Text interior | css=etichetă:conține(„text”) | css=font:contains(„Parola:”) |














