459 Stimmen

Wie kann ich mit XPath ein Element anhand seiner CSS-Klasse finden?

Auf meiner Webseite gibt es eine div mit einer class namens Test .

Wie kann ich sie mit XPath ?

5voto

Siebe Jongebloed Punkte 2606

Seit XPath 2.0 gibt es eine Tokenize-Funktion, die Sie verwenden können:

//div[tokenize(@class,'\s+')='Test']

Hier wird das Token auf Leerzeichen gesetzt und die resultierenden Strings werden mit 'Test' verglichen.

Es ist eine Alternative zur XPath 3.1 Funktion contains-token()

Aber im Moment (2021-04-30) unterstützt kein Browser XPath 2.0 oder mehr.

4voto

user31782 Punkte 6828
//div[@class[contains(.,'Test')]]

Dies ist, was ich in meinem aktuellen Projekt verwende und es funktioniert glatt wie .

Der Punkt . in dem Ausdruck steht für den Wert von class Attribut eines beliebigen div Element. Sie brauchen also nicht zu verwenden normalize-space y concat . Beachten Sie, dass dies auch Divs mit Klassennamen auswählen kann XXXTestXXX . Ich habe meine durchsuchbare Klasse zufällig als infobox-header und die Seite enthält keine Angaben wie XXinfobox-headerXXXX .

1voto

Philip Punkte 6319

Spiel gegen 一つ Klasse, die Leerzeichen enthält.

<div class="hello "></div>

//div[normalize-space(@class)="hello"]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X