2017-12-18 3 views
1

In einer Webseite das folgende Stück Code enthält:Warum kann ich ein Element 'svg' nicht auf einer Webseite finden, in der xpath ein Element 'svg' enthält?

... 
<svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1394" height="450" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%;"> 
<defs id="defs-a3c0aa"> 
<g class="clips"> 
<clipPath class="axesclip" id="clipa3c0aax"> 
<rect x="40" y="0" width="1274" height="450"> 
.... 

Ich benutze die Erweiterung 'XPath Try' für einen XPath suchen, und ich versuche, den folgenden Ausdruck:

//svg 

aber kein Treffer kommt zurück. Die Anzahl der gefundenen Elemente ist Null. Und es gibt keinen iframe in dieser Seite irgendwo.

Also was könnte los sein? (Ich kann die Seite nicht posten, da sie nicht öffentlich ist) ...

Antwort

1

Sie eine bessere Nutzung unter XPath

//*:svg 

es bedeutet, dass alle Nachkommen jeden Namespace und seinen lokalen Namen svg ist mit.

//*[local-name() = 'svg'] 

Darüber würde auch funktionieren. Hoffe, das hilft ...

+0

Ja, das scheint mit 'Try XPath' aber nicht innerhalb Selen zu arbeiten .... – Alex

+0

Ich nehme an, Sie besser verwenden die letzte ... das ist besser als die erste ... – Cylian

+0

Ich habe den letzten benutzt. Funktioniert nicht mit Selen – Alex

0

Das Element <svg> hat einen Namensraum. Sie müssen den Namespace mit einem Präfix registrieren und das Präfix in XPath angeben. Zum Beispiel wird

werden, wenn Sie das Präfix s für http://www.w3.org/2000/svg, der XPath-Ausdruck registrieren
//s:svg 

Die Art und Weise, wie der Namensraum ist abhängig von registrieren welcher Sprache Sie verwenden.

Verwandte Themen