CSS-i valija sisse Selenium
โก Nutikas kokkuvรตte
CSS-i valija sisse Selenium on vรตimas lokaliseerimisstrateegia, mis tuvastab elemente HTML-siltide, ID-de, klasside, atribuutide ja sisemiste tekstimustrite abil. See ressurss selgitab iga CSS-i valija tรผรผpi samm-sammult nรคidetega. Selenium SDI.

Mis on CSS-i valija? Selenium?
A CSS-i valija sisse Selenium on stringimuster, mis tuvastab veebielemendi HTML-sildi, ID, klassi ja atribuutide kombinatsiooni abil. CSS-selektorid on veidi keerukamad kui ID vรตi nime jรคrgi otsimine, kuid kogenud kasutajate seas on need kรตige populaarsemad strateegiad. Selenium kasutajad, sest nad pรครคsevad ligi elementidele, millel puudub รผldse ID vรตi Name atribuut.
CSS-i valijad sisse Selenium esinevad mitmel kujul, kuid see juhend keskendub viiele kรตige levinumale mustrile, mida kasutatakse Selenium SDI:
- Silt ja ID
- Silt ja klass
- Silt ja atribuut
- Silt, klass ja atribuut
- Sisemine tekst
Selle strateegia kasutamisel Selenium IDE, lisage alati eesliide Target kast sรตnaga โcss="nagu on nรคidatud igas allpool toodud nรคites.
Miks kasutada CSS-i selektoreid Selenium?
CSS-selektorid on paljude jaoks eelistatud lokaliseerimisstrateegia Selenium automatiseerimisinsenerid, sest nad tasakaalustavad kiiruse, paindlikkuse ja loetavuse. Kaasaegsed veebirakendused kasutavad sageli dรผnaamiliselt genereeritud ID-sid vรตi eemaldavad nimeatribuudid tรคielikult, jรคttes CSS-selektorid ainsaks usaldusvรครคrseks viisiks lehe konkreetse elemendi sihtimiseks.
CSS-selektorite kasutamise peamised eelised on jรคrgmised:
- Performance: CSS-selektoreid tรถรถtleb brauseri enda mootor, seega tรคidavad need kiiremini kui samavรครคrsed XPath-avaldised, eriti vanemates brauserites, nรคiteks Internet Exploreris.
- Paindlikkus: Need รผhendavad sildi, klassi, atribuudi ja osalise vaste loogika, vรตimaldades testijatel sihtida elemente, millel puudub stabiilne ID.
- Loetavus: Sรผntaks peegeldab seda, kuidas arendajad juba CSS-i reegleid kirjutavad, mis lรผhendab nii kvaliteedikontrolli inseneride kui ka esiotsa meeskondade รตppimiskรตverat.
- Brauseriteรผlene stabiilsus: CSS-selektorid kรคituvad Chrome'is รผhtlaselt, Firefox, Edge'i ja Safarit, vรคhendades ebaรผhtlaseid testitรตrkeid.
Silt ja ID โ CSS-i valija
Selles nรคites kasutatakse Facebooki sisselogimislehel tekstikasti โEmailโ. Elemendi ID on โe-mailโja sellele oli juba juurdepรครคs jaotises โAsukoha mรครคramine ID jรคrgiโ. Nรผรผd on sama element suunatud a abil Selenium CSS-valija ID atribuudiga.
Sรผntaks
css=tag#id
- tag = juurdepรครคsetava elemendi HTML-mรคrgend
- # = rรคsimรคrk, mis peab alati olema, kui kasutate Selenium CSS-i valija ID-ga
- id = juurdepรครคsetava elemendi ID
Pidage meeles, et ID-le eelneb alati rรคsimรคrk (#).
Step 1) Liigu www.facebook.com. Kontrollige oma brauseri DevToolsi (vรตi mรตne vanema tรถรถriista, nรคiteks Firebugi) abil tekstikasti โE-post vรตi telefonโ.
Pane tรคhele, et HTML-mรคrgend on โsisend" ja selle ID on "e-mailโ. Tรคielik CSS-i valija saab seega โcss=sisend#e-post".
Step 2) Sisenema "css=sisend#e-post" sisse Target kast Selenium IDE ja klรตpsake nuppu Otsi. Selenium IDE tรตstab lehel esile sobiva elemendi.
Silt ja klass โ CSS-i valija
CSS-valija Selenium mis kasutab HTML-silti ja klassi nime, jรคrgib sama ideed mis silt ja ID, aga rรคsi asendab punkt (.).
Sรผntaks
css=tag.class
- tag = juurdepรครคsetava elemendi HTML-mรคrgend
- . = punktimรคrk, mis peab alati olema olemas CSS-i valija kasutamisel klassiga
- klass = juurdepรครคsetava elemendi klass
Step 1) Ava demoleht https://demo.guru99.com/test/facebook.html ja kontrollige tekstikasti โE-post vรตi telefonโ. Pange tรคhele, et HTML-mรคrgend on โsisend" ja selle klass on "sisestatud tekst".
Step 2) In Selenium IDE-sse sisestage โcss=input.inputtext"Kohta Target kasti ja klรตpsake nuppu Otsi. Selenium IDE tunneb รคra tekstikasti E-post vรตi Telefon.
Pane tรคhele, et kui mitu elementi jagavad sama HTML-silti ja klassi, tuvastatakse ainult esimene sobiv element lรคhtekoodis. Kontrollige samal lehel olevat tekstikasti โParoolโ ja pange tรคhele, et see jagab sama klassi tekstikastiga โE-postโ vรตi โTelefonโ.
Eelmisel illustratsioonil oli esile tรตstetud ainult tekstivรคli โE-postโ vรตi โTelefonโ, kuna see kuvatakse lehe lรคhtekoodis esimesena.
Silt ja atribuut โ CSS-i valija
See strateegia รผhendab HTML-sildi kindla atribuudiga, mis kuulub elemendile, millele soovite juurde pรครคseda.
Sรผntaks
css=tag[attribute=value]
- tag = juurdepรครคsetava elemendi HTML-mรคrgend
- [ ja ] = nurksulud, mis รผmbritsevad atribuuti ja selle vastavat vรครคrtust
- attribute = kasutatav atribuut. Valige elemendi jaoks unikaalne atribuut, nรคiteks nimi vรตi ID.
- vรครคrtus = valitud atribuudi vastav vรครคrtus.
Step 1) Liikuge Mercury Ekskursioonide registreerimisleht https://demo.guru99.com/test/newtours/register.php ja kontrollige tekstikasti โPerekonnanimiโ. Pange tรคhele selle HTML-silti (โinputโ) ja nime atribuuti (โlastNameโ).
Step 2) In Selenium IDE-sse sisestage โcss=sisend[nimi=perenimi]"Kohta Target kasti ja klรตpsake nuppu Otsi. Selenium IDE leiab edukalt perekonnanime vรคlja.
Kui mitu elementi jagavad sama HTML-silti ja atribuuti, tuvastatakse ainult esimene. Kรคitumine on identne sama sildi ja klassiga elementide leidmisega.
Silt, klass ja atribuut โ CSS-i valija
Sรผntaks
css=tag.class[attribute=value]
- tag = juurdepรครคsetava elemendi HTML-mรคrgend
- . = punktimรคrk, mis peab alati olema olemas CSS-i valija kasutamisel klassiga
- klass = juurdepรครคsetava elemendi klass
- [ ja ] = nurksulud, mis รผmbritsevad konkreetset atribuuti ja selle vastavat vรครคrtust
- attribute = kasutatav atribuut. Valige elemendi jaoks unikaalne atribuut, nรคiteks nimi vรตi ID.
- vรครคrtus = valitud atribuudi vastav vรครคrtus.
Step 1) Ava demoleht https://demo.guru99.com/test/facebook.html ja kontrollige sisestuskaste โE-post vรตi telefonโ ja โParoolโ. Pange tรคhele nende HTML-mรคrgendit, klassi ja atribuute. Selles nรคites kasutatakse โtabindex"atribuut".
Step 2) Ava esmalt tekstivรคli โE-post vรตi telefonโ, kasutades tabindexi vรครคrtust 1. Sisesta โcss=input.inputtext[tabindex=1]โSisse Selenium IDE-d Target ja klรตpsake nuppu โOtsiโ. E-posti vรตi telefoni vรคli on esile tรตstetud.
Step 3) Parooli sisestamise vรคljale sihtimiseks asenda lihtsalt tabindexi vรครคrtus. Sisestage โcss=input.inputtext[tabindex=2]"Kohta Target kasti ja klรตpsake nuppu Otsi. Selenium IDE leiab edukalt parooli tekstikasti.
Sisemine tekst โ CSS-i valija
HTML-i siltidele antakse harva atribuute id, name vรตi class. Kuidas neile siis ligi pรครคseda? SeleniumVastus peitub nende sisemises tekstis. Sisemised tekstid on tegelikud stringimustrid, mida HTML-i silt lehel kuvab.
Sรผntaks
css=tag:contains("inner text")
- tag = juurdepรครคsetava elemendi HTML-mรคrgend
- sisemine tekst = elemendi nรคhtav tekstisisu
Step 1) Liikuge Mercury Ekskursioonide koduleht https://demo.guru99.com/test/newtours/ ja kontrollige silti โPasswordโ (parool). Pange tรคhele selle HTML-silti (antud juhul โfontโ) ja veenduge, et elemendil puuduvad atribuudid class (klass), id (id) vรตi name (nimi).
Step 2) KASUTUSALA css=font:contains("Parool:") sisse Selenium IDE-d Target kasti ja klรตpsake nuppu Otsi. Selenium IDE leiab paroolisildi, nagu allpool nรคidatud.
Step 3) Seekord asenda sisemine tekst sรตnaga โBostonโ, nii et Target saab "css=font:sisaldab("Boston")โ. Klรตpsake nuppu โOtsiโ. Silt โBostonist San Franciscosseโ on esile tรตstetud, mis nรคitab, et Selenium IDE suudab leida pika sildi isegi siis, kui selle sisemisest tekstist on esitatud ainult esimene sรตna.
CSS-i valija vs XPath Selenium
Veebielementide tuvastamiseks kasutatakse nii CSS-i selektoreid kui ka XPathi. Selenium, kuid neil on erinevad tugevused. Allolev tabel vรตrdleb kahte lokaliseerimisstrateegiat pรตhimรตรตtmetes:
| Kriteeriumid | CSS-i valija | XPath |
|---|---|---|
| Kiirus | Kiirem, tรถรถtab brauseri oma mootoril | Aeglasem, eriti vanemates brauserites |
| Eestvedamine | Ainult edasi (vanemast lapsele) | Edasi ja tagasi (lapsest vanemale) |
| Sรผntaks | Lรผhem ja sarnane CSS-i reeglitega | Pikemad, hierarhilised teeavaldised |
| Teksti sobitamine | Piiratud pseudoklassiga :contains() | Tugevad text() ja contains() funktsioonid |
| Parim on | Staatilised paigutused ja kaasaegsed veebirakendused | Kompleksne DOM-i lรคbimine ja tekstipรตhised lokaatorid |
CSS-selektorite kirjutamise parimad tavad Selenium
Usaldusvรครคrsete CSS-selektorite kirjutamine hรตlmab enamat kui lihtsalt sรผntaksi tundmist. Jรคrgmised tavad aitavad testijatel luua stabiilseid ja hooldatavaid Selenium skriptid, mis jรครคvad kasutajaliidese muudatustesse alles:
- Eelista unikaalseid omadusi: Vali alati atribuudid id, data-test-id vรตi name, mis on automatiseerimiseks selgesรตnaliselt lisatud. Need jรครคvad stabiilseks isegi siis, kui visuaalne paigutus muutub.
- Vรคldi liiga pesastatud selektoreid: Pikad ketid, nรคiteks
div > div > ul > li > akatki minna, kui arendajad mรคrgistust รผmber faktoriseerivad. Hoia selektorid vรตimalikult lรผhikesed. - Kasutage osalisi vasteid targalt: Mustrid nagu
[class*="btn-primary"]taluvad vรคikeseid klassinime muudatusi, kuid need vรตivad sobida ka soovimatute elementidega. - Vรคltige indeksipรตhiseid lokaatoreid: Valijad nagu
nth-child(3)on habras, sest รตe- ja vennaelemendi lisamine nihutab iga positsiooni. - Valijate valideerimine DevToolsis: Enne jooksmist a Selenium skripti jaoks kleepige valija Chrome DevToolsi konsooli, kasutades
document.querySelector()et kinnitada, et see tagastab tรคpselt รผhe elemendi. - Atribuutide kombineerimine unikaalsuse saavutamiseks: Kui klassi jagavad paljud elemendid, lisage atribuudifilter, nรคiteks
input.form-control[name="email"]sihtmรคrgi รผheselt mรตistetavaks tegemiseks. - Dokumenteerimine ja taaskasutamine: Tsentraliseeri selektorid Page Object klassi sees nii, et รผks uuendus parandaks iga testi, mis viitab samale elemendile.
Nende juhiste jรคrgimine vรคhendab ebastabiilsust, parandab testide sooritamise kiirust ja muudab Selenium sviite on aja jooksul lihtsam hooldada.
Kokkuvรตte: CSS-i valija sรผntaksi kiirjuhend
Allolev tabel koondab kรตik Selenium Selles juhendis kรคsitletud CSS-i valiku muster:
| Meetod | Target Sรผntaks | Nรคide |
|---|---|---|
| Silt ja ID | css=tag#id | css=sisend#e-post |
| Silt ja klass | css=tag.klass | css=input.inputtext |
| Silt ja atribuut | css=silt[atribuut=vรครคrtus] | css=sisend[nimi=perenimi] |
| Silt, klass ja atribuut | css=tag.class[attribute=value] | css=input.inputtext[tabindex=1] |
| Sisemine tekst | css=tag:sisaldab(โtekstโ) | css=font:contains("Parool:") |














