Selektor CSS w Selenium

Co to jest selektor CSS?

Selektory CSS w Selenium to wzorce ciągów używane do identyfikacji elementu na podstawie kombinacji tagu HTML, identyfikatora, klasy i atrybutów. Lokalizowanie za pomocą selektorów CSS w Selenium jest bardziej skomplikowana niż poprzednie metody, ale jest to najczęstsza strategia lokalizacji zaawansowanych Selenium użytkowników, ponieważ może uzyskać dostęp nawet do tych elementów, które nie mają identyfikatora ani nazwy.

Selektory CSS w Selenium mają wiele formatów, ale skupimy się tylko na tych najpopularniejszych. Różne typy lokalizatorów CSS w Selenium IDE

  • Etykieta i identyfikator
  • Etykieta i klasa
  • Tag i atrybut
  • Tag, klasa i atrybut
  • Tekst wewnętrzny

Stosując tę ​​strategię, zawsze poprzedzamy Target pole z „css=”, jak pokazano w poniższych przykładach.

tag i id – Selektor CSS

Ponownie w tym przykładzie użyjemy pola tekstowego Email Facebooka. Jak pamiętasz, ma ono identyfikator „email”, a my już uzyskaliśmy do niego dostęp w sekcji „Lokalizacje według ID”. Tym razem użyjemy Selenium Selektor CSS z identyfikatorem dostępu do tego samego elementu.

Składnia

css=tag#id

  • tag = znacznik HTML elementu, do którego uzyskiwany jest dostęp
  • # = znak skrótu. To powinno być zawsze obecne podczas używania a Selenium Selektor CSS z identyfikatorem
  • id = identyfikator elementu, do którego uzyskiwany jest dostęp

Należy pamiętać, że identyfikator jest zawsze poprzedzony znakiem hash (#).

Krok 1) Nawigować do www.facebook.com. Używając Firebuga, sprawdź pole tekstowe „E-mail lub telefon”.

W tym momencie zwróć uwagę, że tag HTML to „input”, a jego ID to „email”. Nasza składnia będzie więc następująca: „css=input#email”.

Tag i identyfikator - Selektor CSS

Krok 2) Wpisz „css=input#email” w Target pudełko z Selenium IDE i kliknij przycisk Znajdź. Selenium IDE powinno być w stanie podświetlić ten element.

Tag i identyfikator - Selektor CSS

tag i klasa – Selektor CSS

Selektor CSS w Selenium użycie znacznika HTML i nazwy klasy jest podobne do użycia znacznika i identyfikatora, ale w tym przypadku zamiast znaku skrótu używana jest kropka (.).

Składnia

css=tag.class

  • tag = znacznik HTML elementu, do którego uzyskiwany jest dostęp
  • . = znak kropki. Powinno to zawsze występować podczas używania selektora CSS z klasą
  • class = klasa elementu, do którego uzyskuje się dostęp

Krok 1) Przejdź do strony demonstracyjnej https://demo.guru99.com/test/facebook.html i użyj Firebuga, aby sprawdzić pole tekstowe „E-mail lub telefon”. Zauważ, że jego znacznik HTML to „input”, a jego klasa to „inputtext”.

Tag i klasa - Selektor CSS

Krok 2) In Selenium IDE, wpisz „css=input.inputtext” w pliku Target pole i kliknij Znajdź. Selenium IDE powinno być w stanie rozpoznać pole tekstowe E-mail lub Telefon.

Tag i klasa - Selektor CSS

Pamiętaj, że jeśli wiele elementów ma ten sam znacznik HTML i tę samą nazwę, rozpoznany zostanie tylko pierwszy element w kodzie źródłowym. Używając Firebuga, sprawdź pole tekstowe Hasło na Facebooku i zauważ, że ma ono taką samą nazwę jak pole tekstowe E-mail lub Telefon.

Tag i klasa - Selektor CSS

Powodem, dla którego na poprzedniej ilustracji wyróżniono tylko pole tekstowe E-mail lub Telefon, jest to, że pojawia się ono jako pierwsze w źródle strony na Facebooku.

Tag i klasa - Selektor CSS

tag i atrybut – Selektor CSS

Strategia ta wykorzystuje znacznik HTML i określony atrybut elementu, do którego należy uzyskać dostęp.

Składnia

css=tag[attribute=value]

  • tag = znacznik HTML elementu, do którego uzyskiwany jest dostęp
  • [ i ] = nawiasy kwadratowe, w których zostanie umieszczony konkretny atrybut i odpowiadająca mu wartość
  • atrybut = atrybut, który ma zostać użyty. Wskazane jest użycie atrybutu unikalnego dla elementu, takiego jak nazwa lub identyfikator.
  • wartość = odpowiadająca wartość wybranego atrybutu.

Krok 1) Nawigować do Mercury Strona rejestracji wycieczek https://demo.guru99.com/test/newtours/register.php i sprawdź pole tekstowe „Nazwisko”. Zwróć uwagę na jego znacznik HTML („input” w tym przypadku) i jego imię („lastName”).

Tag i atrybut - Selektor CSS

Krok 2) In Selenium IDE, wpisz „css=input[imię=nazwisko]” w pliku Target pole i kliknij Znajdź. Selenium IDE powinno mieć możliwość uzyskania dostępu do pola Nazwisko.

Tag i atrybut - Selektor CSS

Jeśli wiele elementów ma ten sam tag i atrybut HTML, rozpoznany zostanie tylko pierwszy z nich. To zachowanie jest podobne do lokalizowania elementów za pomocą selektorów CSS z tym samym tagiem i klasą.

tag, klasa i atrybut – Selektor CSS

Składnia

css=tag.class[attribute=value]

  • tag = znacznik HTML elementu, do którego uzyskiwany jest dostęp
  • . = znak kropki. Powinno to zawsze występować podczas używania selektora CSS z klasą
  • class = klasa elementu, do którego uzyskuje się dostęp
  • [ i ] = nawiasy kwadratowe, w których zostanie umieszczony konkretny atrybut i odpowiadająca mu wartość
  • atrybut = atrybut, który ma zostać użyty. Wskazane jest użycie atrybutu unikalnego dla elementu, takiego jak nazwa lub identyfikator.
  • wartość = odpowiadająca wartość wybranego atrybutu.

Krok 1) Przejdź do strony demonstracyjnej https://demo.guru99.com/test/facebook.html i użyj Firebuga, aby sprawdzić pola wprowadzania „E-mail lub telefon” i „Hasło”. Zwróć uwagę na ich znacznik HTML, klasę i atrybuty. W tym przykładzie wybierzemy ich atrybuty „tabindex”.

Tag, klasa i atrybut - Selektor CSS

Krok 2) Najpierw przejdziemy do pola tekstowego „E-mail lub telefon”. Dlatego użyjemy wartości tabindex 1. Wpisz „css=input.inputtext[tabindex=1]” w Selenium IDE Target pole i kliknij Znajdź. Pole wprowadzania 'E-mail lub Telefon' powinno być podświetlone.

Tag, klasa i atrybut - Selektor CSS

Krok 3) Aby uzyskać dostęp do pola wprowadzania hasła, wystarczy zastąpić wartość atrybutu tabindex. Wpisz „css=input.inputtext[tabindex=2]” w Target i kliknij przycisk Znajdź. Selenium IDE musi pomyślnie zidentyfikować pole tekstowe Hasło.

Tag, klasa i atrybut - Selektor CSS

tekst wewnętrzny – Selektor CSS

Jak zapewne zauważyłeś, etykietom HTML rzadko podaje się atrybuty identyfikatora, nazwy lub klasy. Jak zatem uzyskać do nich dostęp? Odpowiedź leży w wykorzystaniu ich wewnętrznych tekstów. Teksty wewnętrzne to rzeczywiste wzorce ciągów, które etykieta HTML wyświetla na stronie.

Składnia

css=tag:contains("inner text")

  • tag = znacznik HTML elementu, do którego uzyskiwany jest dostęp
  • tekst wewnętrzny = tekst wewnętrzny elementu

Krok 1) Nawigować do Mercury Strona główna wycieczek https://demo.guru99.com/test/newtours/ i użyj Firebuga, aby sprawdzić etykietę „Hasło”. Zwróć uwagę na jego tag HTML (który w tym przypadku jest „fontem”) i zwróć uwagę, że nie ma on atrybutów klasy, identyfikatora ani nazwy.

Tekst wewnętrzny - Selektor CSS

Krok 2) Typ css=font:contains(“Hasło:”) najnowszych Selenium IDE Target pole i kliknij Znajdź. Selenium IDE powinno mieć dostęp do etykiety Hasło, jak pokazano na obrazku poniżej.

Tekst wewnętrzny - Selektor CSS

Krok 3) Tym razem zamień tekst wewnętrzny na „Boston”, aby Twój Target teraz stanie się „css=font:contains(“Boston”)”. Kliknij Znajdź. Powinieneś zauważyć, że etykieta „Boston do San Francisco” jest podświetlona. To pokazuje, że Selenium IDE może uzyskać dostęp do długiej etykiety, nawet jeśli właśnie wskazałeś pierwsze słowo jej wewnętrznego tekstu.

Tekst wewnętrzny - Selektor CSS

Podsumowanie

Składnia lokalizowania za pomocą selektora CSS

Metoda wykonania Target Składnia Przykład
Etykieta i identyfikator css=tag#id css=wejście#e-mail
Etykieta i klasa css=tag.klasa css=wejście.tekst wejściowy
Etykieta i atrybut css=tag[atrybut=wartość] css=input[imię=nazwisko]
Tag, klasa i atrybut css=tag.class[atrybut=wartość] css=input.inputtext[tabindex=1]