Heim >Web-Frontend >CSS-Tutorial >Wie finde ich ein Div-Element mit mehreren Klassennamen in Selenium?

Wie finde ich ein Div-Element mit mehreren Klassennamen in Selenium?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-27 06:26:10461Durchsuche

How to Find a Div Element with Multiple Class Names in Selenium?

So identifizieren Sie ein Div-Element mit mehreren Klassennamen

Bei der Interaktion mit Webelementen kann die Ausrichtung auf Elemente anhand ihrer Klassennamen von entscheidender Bedeutung sein. Die @FindBy-Annotation von Selenium erlaubt jedoch nur einen einzelnen Klassennamen im className-Parameter. Dies kann einschränkend sein, da Elemente oft mehrere Klassennamen haben.

Alternative Ansätze

Um diese Einschränkung zu überwinden, ziehen Sie die folgenden Alternativen in Betracht:

1. Verwenden Sie den xpath-Parameter

XPath ermöglicht Ihnen die Verwendung komplexer Ausdrücke zur Identifizierung von Elementen. Für genaue Klassenübereinstimmungen können Sie die folgende Syntax verwenden:

@FindBy(xpath = "//div[@class='value test']")
@CacheLookup
private WebElement test;

2. Verwenden Sie „contains(@class)“ in XPath

Wenn das Element eine beliebige Kombination der angegebenen Klassennamen haben kann, können Sie den Ausdruck „contains(@class)“ verwenden:

@FindBy(xpath = "//div[contains(@class, 'value') and contains(@class, 'test')]")
@CacheLookup
private WebElement test;

3. Verwenden Sie CSS-Selektoren

CSS-Selektoren bieten eine flexible Möglichkeit, Elemente basierend auf mehreren Klassennamen gezielt anzusprechen. Mit der folgenden Syntax können Sie Elemente mit einer beliebigen Kombination der angegebenen Klassennamen abgleichen:

@FindBy(css = "div[class*='value test']")
@CacheLookup
private WebElement test;

Grundlegendes zum XPath-Klassenmatching

Es ist wichtig zu beachten, dass XPaths Klassenmatching erfolgt Regeln unterscheiden sich geringfügig von CSS-Selektoren. Wenn Sie eine genaue Übereinstimmung benötigen, verwenden Sie [@class='value test']. Um Elemente mit beliebiger Reihenfolge oder Kombination von Klassennamen abzugleichen, verwenden Sie [contains(@class, 'value') und contains(@class, 'test')].

Das obige ist der detaillierte Inhalt vonWie finde ich ein Div-Element mit mehreren Klassennamen in Selenium?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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