CSS-valitsin sisään Selenium
⚡ Älykäs yhteenveto
CSS-valitsin sisään Selenium on tehokas paikannusstrategia, joka tunnistaa elementit HTML-tageilla, ID:illä, luokilla, attribuuteilla ja sisäisillä tekstikuvioilla. Tämä resurssi selittää jokaisen CSS-valitsimen tyypin vaiheittaisten esimerkkien avulla. Selenium SDI.

Mikä on CSS-valitsin? Selenium?
A CSS-valitsin sisään Selenium on merkkijonomalli, joka tunnistaa verkkoelementin HTML-tagin, id:n, luokan ja attribuuttien yhdistelmän avulla. CSS-valitsimet ovat hieman edistyneempiä kuin paikantaminen id:n tai nimen perusteella, mutta ne ovat suosituin strategia kokeneiden käyttäjien keskuudessa. Selenium käyttäjille, koska he voivat tavoittaa elementtejä, joilla ei ole lainkaan ID- tai Name-attribuuttia.
CSS-valitsimet sisään Selenium niitä on monenlaisia, mutta tämä opas keskittyy viiteen yleisimpään malliin, joita käytetään Selenium SDI:
- Tunniste ja tunnus
- Tunniste ja luokka
- Tunniste ja attribuutti
- Tunniste, luokka ja attribuutti
- Sisäinen teksti
Kun tätä strategiaa käytetään Selenium IDE, aina etuliitteenä Target laatikko, jossa on ”css="kuten jokaisessa alla olevassa esimerkissä on osoitettu.
Miksi käyttää CSS-valitsimia Selenium?
CSS-valitsimet ovat monien suosima paikannusstrategia Selenium automaatioinsinööreille, koska he tasapainottavat nopeuden, joustavuuden ja luettavuuden. Nykyaikaiset verkkosovellukset käyttävät usein dynaamisesti luotuja tunnisteita tai poistavat nimiattribuutit kokonaan, jolloin CSS-valitsimet ovat ainoa luotettava tapa kohdistaa tiettyyn sivun elementtiin.
CSS-valitsimien käytön tärkeimpiä etuja ovat:
- Suorituskyky: CSS-valitsimet käsittelee selaimen oma hakukone, joten ne suoritetaan nopeammin kuin vastaavat XPath-lausekkeet, erityisesti vanhemmissa selaimissa, kuten Internet Explorerissa.
- Joustavuus: Ne yhdistävät tag-, luokka-, attribuutti- ja osittaisen osuman logiikan, jolloin testaajat voivat kohdistaa testeihin elementtejä, joilla ei ole vakaata tunnistetta.
- luettavuus: Syntaksi heijastaa tapaa, jolla kehittäjät jo kirjoittavat CSS-sääntöjä, mikä lyhentää sekä laadunvarmistusinsinöörien että front-end-tiimien oppimiskäyrää.
- Selainten välinen vakaus: CSS-valitsimet toimivat yhdenmukaisesti Chromessa, Firefox, Edge ja Safari, mikä vähentää epätasaisia testivirheitä.
Tagi ja tunnus – CSS-valitsin
Tässä esimerkissä käytetään Facebookin kirjautumissivulla olevaa Sähköposti-tekstikenttää. Elementin tunnus on ”email", ja sitä käytettiin jo "Paikannus tunnuksen perusteella" -osiossa. Nyt sama elementti kohdistetaan käyttämällä Selenium CSS-valitsin, jossa on ID-attribuutti.
Syntaksi
css=tag#id
- tag = käytettävän elementin HTML-tunniste
- # = ristikkomerkki, jonka on aina oltava läsnä käytettäessä Selenium CSS-valitsin tunnuksella
- id = käytettävän elementin tunnus
Muista, että ID:tä edeltää aina hash-merkki (#).
Vaihe 1) Navigoida johonkin www.facebook.comTarkista ”Sähköposti tai puhelinnumero” -tekstikenttä selaimesi DevTools-työkaluilla (tai jollakin vanhalla työkalulla, kuten Firebugilla).
Huomaa, että HTML-tagi on "panos” ja sen tunnus on ”email". Täydellinen CSS-valitsin muuttuu siis "css=syöttö#sähköposti".
Vaihe 2) Tulla sisään "css=syöttö#sähköposti”Osaksi Target laatikko Selenium IDE ja napsauta Etsi-painiketta. Selenium IDE korostaa vastaavan elementin sivulla.
Tagi ja luokka – CSS-valitsin
CSS-valitsin Selenium , joka käyttää HTML-tagia ja luokan nimeä, noudattaa samaa ideaa kuin tag ja ID, mutta piste (.) korvaa ristikkomerkin.
Syntaksi
css=tag.class
- tag = käytettävän elementin HTML-tunniste
- . = pistemerkki, jonka on aina oltava läsnä käytettäessä CSS-valitsinta luokan kanssa
- class = käytettävän elementin luokka
Vaihe 1) Avaa demosivu https://demo.guru99.com/test/facebook.html ja tarkista ”Sähköposti tai puhelin” -tekstiruutu. Huomaa, että HTML-tagi on ”panos” ja sen luokka on ”syöteteksti".
Vaihe 2) In Selenium IDE-kenttään, kirjoita "css=input.inputtext"In Target -ruutua ja napsauta Etsi. Selenium IDE tunnistaa Sähköposti- tai Puhelinnumero-tekstiruudun.
Huomaa, että kun useilla elementeillä on sama HTML-tagi ja luokka, vain ensimmäinen vastaava elementti lähdekoodissa tunnistetaan. Tarkasta samalla sivulla oleva Salasana-tekstiruutu ja huomaa, että se kuuluu samaan luokkaan kuin Sähköposti- tai Puhelinnumero-tekstiruutu.
Edellisessä kuvassa korostettiin vain Sähköposti- tai Puhelinnumero-tekstiruutu, koska se näkyy ensimmäisenä sivun lähdekoodissa.
Tagi ja attribuutti – CSS-valitsin
Tämä strategia yhdistää HTML-tagin tiettyyn attribuuttiin, joka kuuluu käytettävään elementtiin.
Syntaksi
css=tag[attribute=value]
- tag = käytettävän elementin HTML-tunniste
- [ ja ] = hakasulkeet, jotka ympäröivät attribuutin ja sitä vastaavan arvon
- attribuutti = käytettävä attribuutti. Valitse elementille ainutlaatuinen attribuutti, kuten nimi tai tunniste.
- arvo = valitun määritteen vastaava arvo.
Vaihe 1) Siirry Mercury Retkien rekisteröintisivu https://demo.guru99.com/test/newtours/register.php ja tarkista ”Sukunimi”-tekstikenttä. Huomioi sen HTML-tagi (”input”) ja nimiattribuutti (”lastName”).
Vaihe 2) In Selenium IDE-kenttään, kirjoita "css=input[nimi=sukunimi]"In Target -ruutua ja napsauta Etsi. Selenium IDE paikantaa Sukunimi-kentän onnistuneesti.
Kun useilla elementeillä on sama HTML-tagi ja -attribuutti, vain ensimmäinen tunnistetaan. Toiminta on identtinen saman tunnisteen ja luokan omaavien elementtien paikantamisen kanssa.
Tagi, luokka ja attribuutti – CSS-valitsin
Syntaksi
css=tag.class[attribute=value]
- tag = käytettävän elementin HTML-tunniste
- . = pistemerkki, jonka on aina oltava läsnä käytettäessä CSS-valitsinta luokan kanssa
- class = käytettävän elementin luokka
- [ ja ] = hakasulkeet, jotka ympäröivät tietyn attribuutin ja sen vastaavan arvon
- attribuutti = käytettävä attribuutti. Valitse elementille ainutlaatuinen attribuutti, kuten nimi tai tunniste.
- arvo = valitun määritteen vastaava arvo.
Vaihe 1) Avaa demosivu https://demo.guru99.com/test/facebook.html ja tarkista ”Sähköposti tai puhelinnumero”- ja ”Salasana”-syöttökentät. Huomioi niiden HTML-tagi, luokka ja attribuutit. Tässä esimerkissä käytetään ”tabindex"attribuutti".
Vaihe 2) Siirry ensin ”Sähköposti tai puhelin” -tekstikenttään käyttämällä tabindex-arvoa 1. Kirjoita ”css=input.inputtext[tabindex=1]”Osaksi Selenium IDE: t Target ja napsauta Etsi. Sähköposti- tai Puhelinnumero-kenttä on korostettuna.
Vaihe 3) Jos haluat kohdistaa Salasana-syöttöruutuun, korvaa yksinkertaisesti tabindex-arvo. Kirjoita "css=input.inputtext[tabindex=2]"In Target -ruutua ja napsauta Etsi. Selenium IDE paikantaa salasana-tekstiruudun onnistuneesti.
Sisäinen teksti – CSS-valitsin
HTML-tunnisteille annetaan harvoin id-, name- tai class-attribuutteja. Joten miten niitä käytetään SeleniumVastaus löytyy heidän sisäisestä tekstistään. Sisätekstit ovat varsinaisia merkkijonokuvioita, jotka HTML-otsikko näyttää sivulla.
Syntaksi
css=tag:contains("inner text")
- tag = käytettävän elementin HTML-tunniste
- sisäteksti = elementin näkyvä tekstisisältö
Vaihe 1) Siirry Mercury Tours kotisivut https://demo.guru99.com/test/newtours/ ja tarkista ”Password”-tunniste. Huomioi sen HTML-tunniste (tässä tapauksessa ”font”) ja tarkista, että elementillä ei ole class-, id- tai name-attribuutteja.
Vaihe 2) Tyyppi css=font:contains("Salasana:") tulee Selenium IDE: t Target -ruutua ja napsauta Etsi. Selenium IDE paikantaa salasanan alla olevan kuvan mukaisesti.
Vaihe 3) Korvaa tällä kertaa sisempi teksti sanalla ”Boston”, jotta Target tulee "css=font:contains("Boston")". Napsauta Etsi. ”Bostonista San Franciscoon” -merkintä on korostettu, mikä osoittaa, että Selenium IDE pystyy paikantamaan pitkän tunnisteen, vaikka vain sen sisäisen tekstin ensimmäinen sana olisi annettu.
CSS-valitsin vs. XPath Selenium
Sekä CSS-valitsimia että XPath-lausekkeita käytetään verkkoelementtien tunnistamiseen Selenium, mutta niillä on erilaiset vahvuudet. Alla olevassa taulukossa vertaillaan kahta paikannusstrategiaa keskeisten ulottuvuuksien osalta:
| Kriteeri | CSS-valitsin | XPath |
|---|---|---|
| Nopeus | Nopeampi, toimii selaimen omalla moottorilla | Hitaampi, etenkin vanhemmissa selaimissa |
| Suunta | Vain eteenpäin (vanhemmalta lapselle) | Eteenpäin ja taaksepäin (lapsesta vanhemmalle) |
| Syntaksi | Lyhyempi ja CSS-sääntöjen kaltainen | Pidemmät, hierarkkiset polkulausekkeet |
| Tekstin sovitus | Rajoitettu :contains()-pseudoluokkaan | Vahvat text()- ja contains()-funktiot |
| Parasta | Staattiset asettelut ja modernit verkkosovellukset | Monimutkainen DOM-läpikulku ja tekstipohjaiset paikantimet |
CSS-valitsimien kirjoittamisen parhaat käytännöt Selenium
Luotettavien CSS-valitsimien kirjoittaminen on syntaksin tuntemista pidemmälle menevää. Seuraavat käytännöt auttavat testaajia luomaan vakaita, ylläpidettäviä Selenium skriptit, jotka selviävät käyttöliittymän muutoksista:
- Suosi ainutlaatuisia ominaisuuksia: Valitse aina id-, data-test-id- tai name-attribuutit, jotka on erikseen lisätty automaatiota varten. Nämä pysyvät vakaina, vaikka visuaalinen asettelu muuttuisi.
- Vältä liian sisäkkäisiä valitsimia: Pitkiä ketjuja, kuten
div > div > ul > li > arikkoutua helposti, kun kehittäjät muokkaavat merkintöjä uudelleen. Pidä valitsimet mahdollisimman lyhyinä. - Käytä osittaisia osumia viisaasti: Kuviot, kuten
[class*="btn-primary"]sietävät pieniä luokkien nimenmuutoksia, mutta ne voivat myös vastata ei-toivottuja elementtejä. - Vältä indeksipohjaisia paikantimia: Valitsijat, kuten
nth-child(3)ovat hauraita, koska sisaruselementin lisääminen muuttaa jokaista sijaintia. - Valitsinten validointi DevToolsissa: Ennen juoksua a Selenium skripti, liitä valitsin Chrome DevTools -konsoliin käyttämällä
document.querySelector()varmistaakseen, että se palauttaa täsmälleen yhden elementin. - Yhdistä ominaisuuksia ainutlaatuisuuden saavuttamiseksi: Kun luokkaa jakaa useat elementit, lisää attribuuttisuodatin, kuten
input.form-control[name="email"]kohteen yksiselitteiseksi tekemiseksi. - Dokumentointi ja uudelleenkäyttö: Keskitä valitsimet Page Object -luokan sisällä siten, että yksi päivitys korjaa kaikki samaan elementtiin viittaavat testit.
Näiden ohjeiden noudattaminen vähentää epätasaisuutta, parantaa testien suoritusnopeutta ja tekee Selenium sviittejä on helpompi ylläpitää ajan myötä.
Yhteenveto: CSS-valitsimen syntaksin pikaopas
Alla oleva taulukko yhdistää kaikki Selenium Tässä oppaassa käsitelty CSS-valitsinmalli:
| Menetelmä | Target Syntaksi | esimerkki |
|---|---|---|
| Tunniste ja tunnus | css=tag#id | css=syöttö#sähköposti |
| Tunniste ja luokka | css=tag.luokka | css=input.inputtext |
| Tunniste ja attribuutti | css=tunniste[attribuutti=arvo] | css=input[nimi=sukunimi] |
| Tunniste, luokka ja attribuutti | css=tunniste.luokka[attribuutti=arvo] | css=input.inputtext[tabindex=1] |
| Sisäinen teksti | css=tag:sisältää("teksti") | css=font:contains("Salasana:") |














