CSS birač u Selenium

Što je CSS selektor?

CSS selektori u Selenium su uzorci nizova koji se koriste za identifikaciju elementa na temelju kombinacije HTML oznake, id-a, klase i atributa. Lociranje pomoću CSS selektora u Selenium je kompliciranija od prethodnih metoda, ali je najčešća napredna strategija lociranja Selenium korisnicima jer može pristupiti čak i onim elementima koji nemaju ID ili ime.

CSS selektori u Selenium imaju mnogo formata, ali ćemo se usredotočiti samo na one najčešće. Različite vrste CSS lokatora u Selenium IDE

  • Oznaka i ID
  • Oznaka i klasa
  • Oznaka i atribut
  • Oznaka, klasa i atribut
  • Unutarnji tekst

Kada koristimo ovu strategiju, uvijek stavljamo prefiks na Target okvir s “css=” kao što će biti prikazano u sljedećim primjerima.

oznaka i id – CSS Selector

Opet ćemo u ovom primjeru koristiti tekstualni okvir Facebooka za e-poštu. Kao što se sjećate, ima ID "e-pošta" i već smo mu pristupili u odjeljku "Lociranje po ID-u". Ovaj put ćemo koristiti a Selenium CSS birač s ID-om u pristupu tom istom elementu.

Sintaksa

css=tag#id

  • oznaka = HTML oznaka elementa kojem se pristupa
  • # = znak hash. Ovo bi uvijek trebalo biti prisutno kada koristite a Selenium CSS birač s ID-om
  • id = ID elementa kojem se pristupa

Imajte na umu da ID-u uvijek prethodi znak hash (#).

Korak 1) Dođite na www.facebook.com. Koristeći Firebug, pregledajte tekstualni okvir "E-pošta ili telefon".

U ovom trenutku imajte na umu da je HTML oznaka "ulaz", a njen ID "e-pošta". Dakle, naša sintaksa će biti "css=input#email".

Oznaka i id - CSS birač

Korak 2) Unesite "css=input#email" u Target kutija od Selenium IDE i kliknite gumb Pronađi. Selenium IDE bi trebao moći istaknuti taj element.

Oznaka i id - CSS birač

oznaka i klasa – CSS Selector

CSS birač u Selenium korištenje HTML oznake i naziva klase slično je korištenju oznake i ID-a, ali u ovom slučaju se umjesto znaka hash koristi točka (.).

Sintaksa

css=tag.class

  • oznaka = HTML oznaka elementa kojem se pristupa
  • . = znak točke. Ovo bi uvijek trebalo biti prisutno kada koristite CSS selektor s klasom
  • klasa = klasa elementa kojem se pristupa

Korak 1) Idite na demo stranicu https://demo.guru99.com/test/facebook.html i upotrijebite Firebug da provjerite tekstni okvir "E-pošta ili telefon". Primijetite da je njegova HTML oznaka "input", a klasa "inputtext".

Oznaka i klasa - CSS selektor

Korak 2) In Selenium IDE, unesite "css=input.inputtext" u Target okvir i kliknite Pronađi. Selenium IDE bi trebao moći prepoznati tekstni okvir Email ili Phone.

Oznaka i klasa - CSS selektor

Imajte na umu da kada više elemenata ima istu HTML oznaku i naziv, prepoznat će se samo prvi element u izvornom kodu. Koristeći Firebug, pregledajte tekstni okvir Password na Facebooku i primijetite da ima isti naziv kao tekstualni okvir Email ili Phone.

Oznaka i klasa - CSS selektor

Razlog zašto je na prethodnoj ilustraciji istaknut samo tekstni okvir E-mail ili Telefon je taj što se on nalazi na prvom mjestu u izvoru Facebook stranice.

Oznaka i klasa - CSS selektor

oznaka i atribut – CSS Selector

Ova strategija koristi HTML oznaku i određeni atribut elementa kojem se pristupa.

Sintaksa

css=tag[attribute=value]

  • oznaka = HTML oznaka elementa kojem se pristupa
  • [ i ] = uglate zagrade unutar kojih će se staviti određeni atribut i njegova odgovarajuća vrijednost
  • atribut = atribut koji će se koristiti. Preporučljivo je koristiti atribut koji je jedinstven za element kao što je naziv ili ID.
  • vrijednost = odgovarajuća vrijednost odabranog atributa.

Korak 1) Dođite na Mercury Stranica za registraciju izleta https://demo.guru99.com/test/newtours/register.php i pregledajte tekstni okvir "Prezime". Obratite pažnju na njegovu HTML oznaku ("ulaz" u ovom slučaju) i naziv ("prezime").

Oznaka i atribut - CSS selektor

Korak 2) In Selenium IDE, unesite "css=input[ime=prezime]" u Target okvir i kliknite Pronađi. Selenium IDE bi trebao moći uspješno pristupiti polju Prezime.

Oznaka i atribut - CSS selektor

Kada više elemenata ima istu HTML oznaku i atribut, prepoznat će se samo prvi. Ovo ponašanje je slično lociranju elemenata pomoću CSS selektora s istom oznakom i klasom.

oznaka, klasa i atribut – CSS selektor

Sintaksa

css=tag.class[attribute=value]

  • oznaka = HTML oznaka elementa kojem se pristupa
  • . = znak točke. Ovo bi uvijek trebalo biti prisutno kada koristite CSS selektor s klasom
  • klasa = klasa elementa kojem se pristupa
  • [ i ] = uglate zagrade unutar kojih će se staviti određeni atribut i njegova odgovarajuća vrijednost
  • atribut = atribut koji će se koristiti. Preporučljivo je koristiti atribut koji je jedinstven za element kao što je naziv ili ID.
  • vrijednost = odgovarajuća vrijednost odabranog atributa.

Korak 1) Idite na demo stranicu https://demo.guru99.com/test/facebook.html i upotrijebite Firebug za pregled okvira za unos "E-pošta ili telefon" i "Zaporka". Obratite pažnju na njihovu HTML oznaku, klasu i atribute. Za ovaj primjer odabrat ćemo njihove atribute 'tabindex'.

Oznaka, klasa i atribut - CSS birač

Korak 2) Prvo ćemo pristupiti tekstualnom okviru 'E-pošta ili telefon'. Stoga ćemo koristiti tabindex vrijednost 1. Unesite "css=input.inputtext[tabindex=1]" u Selenium Ide Target okvir i kliknite Pronađi. Okvir za unos "E-mail ili telefon" trebao bi biti označen.

Oznaka, klasa i atribut - CSS birač

Korak 3) Za pristup polju za unos lozinke jednostavno zamijenite vrijednost atributa tabindex. Unesite "css=input.inputtext[tabindex=2]" u Target okvir i kliknite na gumb Pronađi. Selenium IDE mora moći uspješno identificirati tekstualni okvir Password.

Oznaka, klasa i atribut - CSS birač

unutarnji tekst – CSS Selector

Kao što ste možda primijetili, HTML oznake rijetko dobivaju atribute ID-a, imena ili klase. Dakle, kako im pristupiti? Odgovor je korištenjem njihovih unutarnjih tekstova. Unutarnji tekstovi su stvarni obrasci nizova koje HTML oznaka prikazuje na stranici.

Sintaksa

css=tag:contains("inner text")

  • oznaka = HTML oznaka elementa kojem se pristupa
  • unutarnji tekst = unutarnji tekst elementa

Korak 1) Dođite na Mercury Početna stranica Tours https://demo.guru99.com/test/newtours/ i koristite Firebug da istražite oznaku "Password". Obratite pažnju na njegovu HTML oznaku (koja je u ovom slučaju "font") i primijetite da nema atribute klase, ID-a ili naziva.

Unutarnji tekst - CSS selektor

Korak 2) Tip css=font:contains(“Lozinka:”) u Selenium Ide Target okvir i kliknite Pronađi. Selenium IDE bi trebao moći pristupiti oznaci Password kao što je prikazano na slici ispod.

Unutarnji tekst - CSS selektor

Korak 3) Ovaj put zamijenite unutarnji tekst s "Boston" tako da vaš Target sada će postati “css=font:contains(“Boston”)”. Pritisnite Pronađi. Trebali biste primijetiti da oznaka "Boston do San Francisco" postaje istaknuta. Ovo vam to pokazuje Selenium IDE može pristupiti dugačkoj oznaci čak i ako ste samo naznačili prvu riječ njenog unutarnjeg teksta.

Unutarnji tekst - CSS selektor

Rezime

Sintaksa za lociranje korištenjem CSS birača

način Target Sintaksa Primjer
Oznaka i ID css=oznaka#id css=unos#e-pošta
Oznaka i klasa css=oznaka.klasa css=input.inputtext
Oznaka i atribut css=oznaka[atribut=vrijednost] css=unos[ime=prezime]
Oznaka, klasa i atribut css=tag.class[atribut=vrijednost] css=input.inputtext[tabindex=1]