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โ€œ.

Tag und ID โ€“ CSS-Selektor

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 ID โ€“ CSS-Selektor

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.

Tag und Klasse โ€“ CSS-Selektor

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.

Tag und Klasse โ€“ CSS-Selektor

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โ€œ.

Tag und Klasse โ€“ CSS-Selektor

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 Klasse โ€“ CSS-Selektor

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โ€œ).

Tag und Attribut โ€“ CSS-Selektor

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.

Tag und Attribut โ€“ CSS-Selektor

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.

Tag, Klasse und Attribut โ€“ CSS-Selektor

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.

Tag, Klasse und Attribut โ€“ CSS-Selektor

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.

Tag, Klasse und Attribut โ€“ CSS-Selektor

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.

Innerer Text โ€“ CSS-Selektor

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.

Innerer Text โ€“ CSS-Selektor

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.

Innerer Text โ€“ CSS-Selektor

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]

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: