Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie kann ich Elemente mit mehreren Klassennamen in Selenium finden?

DDD
Freigeben: 2024-11-16 22:14:03
Original
937 Leute haben es durchsucht

How Can I Locate Elements with Multiple Class Names in Selenium?

Locator-Strategien für Elemente mit mehreren Klassennamen

Das Identifizieren von Webelementen mit mehreren Klassennamen kann eine Herausforderung darstellen, wenn bestimmte Locators verwendet werden, die einen erfordern einzelner, durch Leerzeichen getrennter Wert, wie etwa die @FindBy-Annotation in Java. Um dieses Problem zu lösen, ziehen Sie die folgenden alternativen Strategien in Betracht:

XPath-Locator

XPath-Ausdrücke bieten Flexibilität beim Abgleichen von Elementen basierend auf mehreren Attributen, einschließlich Klassennamen. Die folgenden Strategien können verwendet werden:

  • Genaue Übereinstimmung: Dieser Ansatz identifiziert Elemente, die genau mit den angegebenen Klassennamen in der gewünschten Reihenfolge übereinstimmen.
driver.findElement(By.xpath("//div[@class='value test']"));
Nach dem Login kopieren
  • Contains Constraint: Diese Strategie findet Elemente, die die angegebenen Klassennamen enthalten, unabhängig von ihren Reihenfolge.
driver.findElement(By.xpath("//div[contains(@class, 'value test')]"));
Nach dem Login kopieren
  • Mehrere enthält Einschränkungen: Um Elemente mit beiden Klassennamen abzugleichen, verwenden Sie den Operator „and“:
driver.findElement(By.xpath("//div[contains(@class, 'value') and contains(@class, 'test')]"));
Nach dem Login kopieren

CSS-Selektoren

CSS-Selektoren bieten eine weitere Option zum Auswählen von Elementen mit mehrere Klassennamen:

  • Genaue Übereinstimmung: Ähnlich wie XPath identifiziert dieser Selektor Elemente, die mit den angegebenen Klassennamen in der gewünschten Reihenfolge übereinstimmen.
driver.findElement(By.cssSelector("div[class='value test']"));
Nach dem Login kopieren
  • Enthält Teilzeichenfolge: Dieser Selektor findet Elemente mit einem Klassennamen, der den angegebenen enthält Teilzeichenfolge:
driver.findElement(By.cssSelector("div[class*='value test']"));
Nach dem Login kopieren
  • Klassenkombination: Um Elemente mit mehreren Klassennamen zu finden, verwenden Sie den Punktoperator (.), um sie zu kombinieren:
driver.findElement(By.cssSelector("div.value.test"));
Nach dem Login kopieren

Zusätzliche Überlegungen

Achten Sie bei der Verwendung mehrerer Klassennamen auf Folgendes:

  • Die Reihenfolge der Klassennamen kann sich auf die Übereinstimmungsergebnisse für exakt passende Locators auswirken.
  • XPath-Locators sind im Allgemeinen tendenziell langsamer als CSS-Selektoren.
  • CSS-Selektoren werden möglicherweise nicht von allen Webbrowsern unterstützt.

Das obige ist der detaillierte Inhalt vonWie kann ich Elemente mit mehreren Klassennamen in Selenium finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage