CSS-Selektor in Selenium
Was ist ein CSS-Selektor?
CSS-Selektoren in Selenium sind Zeichenfolgenmuster, die zur Identifizierung eines Elements basierend auf einer Kombination aus HTML-Tag, ID, Klasse und Attributen verwendet werden. Suchen nach CSS-Selektoren in Selenium ist komplizierter als die vorherigen Methoden, aber es ist die gebrรคuchlichste Lokalisierungsstrategie fรผr Fortgeschrittene Selenium Benutzer, da es auch auf Elemente zugreifen kann, die keine ID oder keinen Namen haben.
CSS-Selektoren in Selenium Es gibt viele Formate, aber wir konzentrieren uns nur auf die gรคngigsten. Die verschiedenen Arten von CSS Locator in Selenium IDE
- Tag und ID
- Tag und Klasse
- Tag und Attribut
- Tag, Klasse und Attribut
- Innerer Text
Bei dieser Strategie stellen wir immer das Target Feld mit โcss=โ, wie in den folgenden Beispielen gezeigt wird.
Tag und ID โ CSS-Selektor
Auch in diesem Beispiel verwenden wir das E-Mail-Textfeld von Facebook. Wie Sie sich erinnern, hat es die ID โE-Mailโ und wir haben bereits im Abschnitt โLokalisierung nach IDโ darauf zugegriffen. Dieses Mal verwenden wir ein Selenium CSS-Selektor mit ID beim Zugriff auf genau dasselbe Element.
Syntax
css=tag#id
- tag = das HTML-Tag des Elements, auf das zugegriffen wird
- # = das Hash-Zeichen. Dies sollte bei der Verwendung von a immer vorhanden sein Selenium CSS-Selektor mit ID
- id = die ID des Elements, auf das zugegriffen wird
Beachten Sie, dass der ID immer ein Rautezeichen (#) vorangestellt ist.
Schritt 1) Navigieren www.facebook.com. Untersuchen Sie mit Firebug das Textfeld โE-Mail oder Telefonnummerโ.
Beachten Sie an dieser Stelle, dass das HTML-Tag โinputโ und seine ID โemailโ ist. Unsere Syntax lautet also โcss=input#emailโ.
Schritt 2) Geben Sie โcss=input#emailโ in das Target Kiste von Selenium IDE und klicken Sie auf die Schaltflรคche โSuchenโ. Selenium IDE sollte in der Lage sein, dieses Element hervorzuheben.
Tag und Klasse โ CSS-Selektor
CSS-Selektor in Selenium Die Verwendung eines HTML-Tags und eines Klassennamens รคhnelt der Verwendung eines Tags und einer ID, in diesem Fall wird jedoch ein Punkt (.) anstelle eines Rautezeichens verwendet.
Syntax
css=tag.class
- tag = das HTML-Tag des Elements, auf das zugegriffen wird
- . = das Punktzeichen. Dies sollte immer vorhanden sein, wenn ein CSS-Selektor mit Klasse verwendet wird
- class = die Klasse des Elements, auf das zugegriffen wird
Schritt 1) Gehen Sie zur Demoseite https://demo.guru99.com/test/facebook.html und verwenden Sie Firebug, um das Textfeld โE-Mail oder Telefonโ zu รผberprรผfen. Beachten Sie, dass sein HTML-Tag โinputโ und seine Klasse โinputtextโ ist.
Schritt 2) In Selenium IDE, geben Sie โcss=input.inputtextโ in das Target und klicken Sie auf Suchen. Selenium Die IDE sollte das Textfeld โE-Mailโ oder โTelefonโ erkennen kรถnnen.
Beachten Sie, dass nur das erste Element im Quellcode erkannt wird, wenn mehrere Elemente dasselbe HTML-Tag und denselben Namen haben. รberprรผfen Sie mit Firebug das Textfeld โPasswortโ in Facebook und beachten Sie, dass es den gleichen Namen hat wie das Textfeld โE-Mailโ oder โTelefonโ.
Der Grund, warum in der vorherigen Abbildung nur das Textfeld โE-Mailโ oder โTelefonโ hervorgehoben wurde, besteht darin, dass es in der Seitenquelle von Facebook an erster Stelle steht.
Tag und Attribut โ CSS-Selektor
Diese Strategie verwendet das HTML-Tag und ein bestimmtes Attribut des Elements, auf das zugegriffen werden soll.
Syntax
css=tag[attribute=value]
- tag = das HTML-Tag des Elements, auf das zugegriffen wird
- [ und ] = eckige Klammern, in die ein bestimmtes Attribut und der zugehรถrige Wert eingefรผgt werden
- attribute = das zu verwendende Attribut. Es empfiehlt sich, ein fรผr das Element eindeutiges Attribut zu verwenden, beispielsweise einen Namen oder eine ID.
- Wert = der entsprechende Wert des gewรคhlten Attributs.
Schritt 1) Navigieren Mercury Anmeldeseite fรผr Touren https://demo.guru99.com/test/newtours/register.php und รผberprรผfen Sie das Textfeld โNachnameโ. Beachten Sie den HTML-Tag (in diesem Fall โinputโ) und den Namen (โlastNameโ).
Schritt 2) In Selenium IDE, geben Sie โcss=input[name=lastName]โ in das Target und klicken Sie auf Suchen. Selenium Die IDE sollte erfolgreich auf das Feld โNachnameโ zugreifen kรถnnen.
Wenn mehrere Elemente dasselbe HTML-Tag und Attribut haben, wird nur das erste erkannt. Dieses Verhalten รคhnelt dem Auffinden von Elementen mithilfe von CSS-Selektoren mit demselben Tag und derselben Klasse.
Tag, Klasse und Attribut โ CSS-Selektor
Syntax
css=tag.class[attribute=value]
- tag = das HTML-Tag des Elements, auf das zugegriffen wird
- . = das Punktzeichen. Dies sollte immer vorhanden sein, wenn ein CSS-Selektor mit Klasse verwendet wird
- class = die Klasse des Elements, auf das zugegriffen wird
- [ und ] = eckige Klammern, in die ein bestimmtes Attribut und der zugehรถrige Wert eingefรผgt werden
- attribute = das zu verwendende Attribut. Es empfiehlt sich, ein fรผr das Element eindeutiges Attribut zu verwenden, beispielsweise einen Namen oder eine ID.
- Wert = der entsprechende Wert des gewรคhlten Attributs.
Schritt 1) Gehen Sie zur Demoseite https://demo.guru99.com/test/facebook.html und verwenden Sie Firebug, um die Eingabefelder โE-Mail oder Telefonโ und โPasswortโ zu รผberprรผfen. Beachten Sie deren HTML-Tag, Klasse und Attribute. Fรผr dieses Beispiel wรคhlen wir deren โtabindexโ-Attribute aus.
Schritt 2) Wir werden zuerst auf das Textfeld โE-Mail oder Telefonโ zugreifen. Daher verwenden wir einen Tabindex-Wert von 1. Geben Sie โcss=input.inputtext[tabindex=1]โ ein Selenium IDEs Target und klicken Sie auf โSuchenโ. Das Eingabefeld โE-Mail oder Telefonnummerโ sollte hervorgehoben sein.
Schritt 3) Um auf das Passwort-Eingabefeld zuzugreifen, ersetzen Sie einfach den Wert des tabindex-Attributs. Geben Sie โcss=input.inputtext[tabindex=2]โ in das Target und klicken Sie auf die Schaltflรคche Suchen. Selenium Die IDE muss das Textfeld โKennwortโ erfolgreich identifizieren kรถnnen.
innerer Text โ CSS-Selektor
Wie Sie vielleicht bemerkt haben, erhalten HTML-Labels selten ID-, Namens- oder Klassenattribute. Wie greifen wir also auf sie zu? Die Antwort liegt in der Verwendung ihrer inneren Texte. Innere Texte sind die tatsรคchlichen Zeichenfolgenmuster, die das HTML-Label auf der Seite anzeigt.
Syntax
css=tag:contains("inner text")
- tag = das HTML-Tag des Elements, auf das zugegriffen wird
- innerer Text = der innere Text des Elements
Schritt 1) Navigieren Mercury Homepage von Tours https://demo.guru99.com/test/newtours/ und verwenden Sie Firebug, um die Bezeichnung โPasswortโ zu untersuchen. Beachten Sie das HTML-Tag (in diesem Fall โfontโ) und beachten Sie, dass es keine Klassen-, ID- oder Namensattribute hat.
Schritt 2) Typ css=font:contains(โPasswort:โ) in Selenium IDEs Target und klicken Sie auf Suchen. Selenium Die IDE sollte auf das Kennwortetikett zugreifen kรถnnen, wie im Bild unten gezeigt.
Schritt 3) Ersetzen Sie diesmal den inneren Text durch โBostonโ, damit Ihr Target wird nun zu โcss=font:contains(โBostonโ)โ. Klicken Sie auf โSuchenโ. Sie sollten bemerken, dass die Beschriftung โBoston nach San Franciscoโ hervorgehoben wird. Dies zeigt Ihnen, dass Selenium Die IDE kann auf eine lange Beschriftung zugreifen, selbst wenn Sie nur das erste Wort des inneren Textes angegeben haben.
Zusammenfassung
Syntax fรผr die Suche nach Verwendung des CSS-Selektors
| Methodik | Target Syntax | Beispiel |
|---|---|---|
| Tag und ID | css=tag#id | css=Eingabe#E-Mail |
| Tag und Klasse | css=tag.class | css=input.inputtext |
| Tag und Attribut | css=tag[attribute=value] | css=input[name=lastName] |
| Tag, Klasse und Attribut | css=tag.klasse[attribut=wert] | css=input.inputtext[tabindex=1] |














