CSS-kiezer in Selenium

Wat is een CSS-kiezer?

CSS-kiezers in Selenium zijn tekenreekspatronen die worden gebruikt om een ​​element te identificeren op basis van een combinatie van HTML-tag, id, klasse en attributen. Lokaliseren door CSS-kiezers in Selenium is ingewikkelder dan de voorgaande methoden, maar het is de meest gebruikelijke lokalisatiestrategie van geavanceerde Selenium gebruikers omdat het zelfs toegang heeft tot elementen die geen ID of naam hebben.

CSS-kiezers in Selenium hebben veel formaten, maar we zullen ons alleen concentreren op de meest voorkomende. De verschillende soorten CSS-locator in Selenium IDE

  • Label en ID
  • Tag en klasse
  • Tag en attribuut
  • Tag, klasse en attribuut
  • Innerlijke tekst

Wanneer we deze strategie gebruiken, zetten we altijd het voorvoegsel Target box met “css=” zoals in de volgende voorbeelden zal worden getoond.

tag en id – CSS-kiezer

We gebruiken in dit voorbeeld opnieuw het e-mailtekstvak van Facebook. Zoals u zich kunt herinneren, heeft het een ID van "e-mail" en we hebben het al benaderd in de sectie "Locating by ID". Deze keer gebruiken we een Selenium CSS-kiezer met ID voor toegang tot datzelfde element.

Syntaxis

css=tag#id

  • tag = de HTML-tag van het element waartoe toegang wordt verkregen
  • # = het hekje. Dit moet altijd aanwezig zijn bij gebruik van een Selenium CSS-kiezer met ID
  • id = de ID van het element waartoe toegang wordt verkregen

Houd er rekening mee dat de ID altijd wordt voorafgegaan door een hekje (#).

Stap 1) Navigeer naar www.facebook.com. Bekijk met Firebug het tekstvak 'E-mail of telefoon'.

Let op dat de HTML-tag "input" is en de ID "email". Onze syntaxis wordt dus "css=input#email".

Tag en ID - CSS-kiezer

Stap 2) Voer “css=input#email” in het Target doos vol Selenium IDE en klik op de knop Zoeken. Selenium IDE zou dat element moeten kunnen benadrukken.

Tag en ID - CSS-kiezer

tag en klasse – CSS-kiezer

CSS-kiezer in Selenium Het gebruik van een HTML-tag en een klassenaam is vergelijkbaar met het gebruik van een tag en ID, maar in dit geval wordt een punt (.) gebruikt in plaats van een hekje.

Syntaxis

css=tag.class

  • tag = de HTML-tag van het element waartoe toegang wordt verkregen
  • . = het puntteken. Dit moet altijd aanwezig zijn bij gebruik van een CSS-kiezer met klasse
  • class = de klasse van het element waartoe toegang wordt verkregen

Stap 1) Ga naar de demopagina http://demo.guru99.com/test/facebook.html en gebruik Firebug om het tekstvak "E-mail of telefoon" te inspecteren. Let op dat de HTML-tag "input" is en de klasse "inputtext".

Tag en klasse - CSS-kiezer

Stap 2) In Selenium IDE, voer “css=input.inputtext” in het Target en klik op Zoeken. Selenium De IDE zou het tekstvak E-mail of Telefoon moeten herkennen.

Tag en klasse - CSS-kiezer

Houd er rekening mee dat wanneer meerdere elementen dezelfde HTML-tag en -naam hebben, alleen het eerste element in de broncode wordt herkend. Controleer met Firebug het tekstvak Wachtwoord in Facebook en zie dat het dezelfde naam heeft als het tekstvak E-mail of Telefoon.

Tag en klasse - CSS-kiezer

De reden waarom in de vorige afbeelding alleen het tekstvak E-mail of Telefoon is gemarkeerd, is dat dit vak als eerste in de broncode van de Facebook-pagina staat.

Tag en klasse - CSS-kiezer

tag en attribuut – CSS-kiezer

Deze strategie maakt gebruik van de HTML-tag en een specifiek attribuut van het element waartoe toegang moet worden verkregen.

Syntaxis

css=tag[attribute=value]

  • tag = de HTML-tag van het element waartoe toegang wordt verkregen
  • [ en ] = vierkante haken waarbinnen een specifiek kenmerk en de bijbehorende waarde worden geplaatst
  • attribuut = het attribuut dat moet worden gebruikt. Het is raadzaam om een ​​attribuut te gebruiken dat uniek is voor het element, zoals een naam of ID.
  • waarde = de corresponderende waarde van het gekozen attribuut.

Stap 1) Navigeer naar Mercury De registratiepagina van Tours http://demo.guru99.com/test/newtours/register.php en controleer het tekstvak “Last Name”. Let op de HTML-tag (“input” in dit geval) en de naam (“lastName”).

Tag en attribuut - CSS-kiezer

Stap 2) In Selenium IDE, voer “css=input[naam=achternaam]” in het Target en klik op Zoeken. Selenium De IDE zou nu succesvol toegang moeten hebben tot het vak Achternaam.

Tag en attribuut - CSS-kiezer

Wanneer meerdere elementen dezelfde HTML-tag en hetzelfde attribuut hebben, wordt alleen de eerste herkend. Dit gedrag is vergelijkbaar met het lokaliseren van elementen met behulp van CSS-selectors met dezelfde tag en klasse.

tag, klasse en attribuut – CSS-kiezer

Syntaxis

css=tag.class[attribute=value]

  • tag = de HTML-tag van het element waartoe toegang wordt verkregen
  • . = het puntteken. Dit moet altijd aanwezig zijn bij gebruik van een CSS-kiezer met klasse
  • class = de klasse van het element waartoe toegang wordt verkregen
  • [ en ] = vierkante haken waarbinnen een specifiek kenmerk en de bijbehorende waarde worden geplaatst
  • attribuut = het attribuut dat moet worden gebruikt. Het is raadzaam om een ​​attribuut te gebruiken dat uniek is voor het element, zoals een naam of ID.
  • waarde = de corresponderende waarde van het gekozen attribuut.

Stap 1) Ga naar de demopagina http://demo.guru99.com/test/facebook.html en gebruik Firebug om de invoervakken 'E-mail of telefoon' en 'Wachtwoord' te inspecteren. Let op hun HTML-tag, klasse en kenmerken. Voor dit voorbeeld selecteren we hun 'tabindex'-kenmerken.

Tag, klasse en attribuut - CSS-kiezer

Stap 2) We gaan eerst naar het tekstvak 'E-mail of telefoon'. Daarom gebruiken we een tabindexwaarde van 1. Voer 'css=input.inputtext[tabindex=1]' in Selenium Ides Target en klik op Zoeken. Het invoervak ​​'E-mail of telefoon' moet gemarkeerd zijn.

Tag, klasse en attribuut - CSS-kiezer

Stap 3) Om toegang te krijgen tot het invoervak ​​Wachtwoord, vervangt u eenvoudig de waarde van het kenmerk tabindex. Voer “css=input.inputtext[tabindex=2]” in het veld Target en klik op de knop Zoeken. Selenium IDE moet het tekstvak Wachtwoord succesvol kunnen identificeren.

Tag, klasse en attribuut - CSS-kiezer

innerlijke tekst – CSS-kiezer

Zoals je misschien hebt gemerkt, krijgen HTML-labels zelden de kenmerken id, name of class toegewezen. Dus, hoe krijgen we er toegang toe? Het antwoord ligt in het gebruik van hun innerlijke teksten. Innerlijke teksten zijn de daadwerkelijke tekenreekspatronen die het HTML-label op de pagina weergeeft.

Syntaxis

css=tag:contains("inner text")

  • tag = de HTML-tag van het element waartoe toegang wordt verkregen
  • binnentekst = de binnentekst van het element

Stap 1) Navigeer naar Mercury De startpagina van Tours http://demo.guru99.com/test/newtours/ en gebruik Firebug om het label "Wachtwoord" te onderzoeken. Let op de HTML-tag (in dit geval 'font') en merk op dat deze geen class-, id- of name-attributen heeft.

Binnentekst - CSS-kiezer

Stap 2) Type css=font:contains(“Wachtwoord:”) om in Selenium Ides Target en klik op Zoeken. Selenium IDE zou toegang moeten hebben tot het wachtwoordlabel, zoals weergegeven in de onderstaande afbeelding.

Binnentekst - CSS-kiezer

Stap 3) Vervang deze keer de binnentekst door "Boston", zodat uw Target wordt nu “css=font:contains(“Boston”)”. Klik op Zoeken. U zult zien dat het label “Boston naar San Francisco” wordt gemarkeerd. Dit laat u zien dat Selenium IDE heeft toegang tot een lang label, zelfs als u zojuist het eerste woord van de binnentekst hebt aangegeven.

Binnentekst - CSS-kiezer

Samenvatting

Syntaxis voor lokaliseren op basis van CSS-kiezergebruik

Methode Target Syntaxis Voorbeeld
Label en ID css=tag#id css=invoer#e-mail
Tag en klasse css=tag.class css=invoer.invoertekst
Tag en attribuut css=tag[attribuut=waarde] css=invoer[naam=achternaam]
Tag, klasse en kenmerk css=tag.class[attribuut=waarde] css=invoer.invoertekst[tabindex=1]