2017-01-05 5 views
0

Ich habe ein paar der folgenden Elemente in meinem Code.Probleme mit Nightwatch.js und nth-child (css)

<img src="/images/myImage.jpg" alt="myImage">

Sie sind nur in den Körper der Seite. Mit img[src='/images/myImage.jpg']:nth-child(1) wird das erste dieser Elemente abgerufen. Aber warum kann ich img[src='/images/myImage.jpg']:nth-child(2) nicht verwenden, um das zweite Element zu finden? 3,4 oder 5 funktionieren auch nicht. Nur N-Kind (1) arbeitet.

Irgendwelche Ideen?

+0

Können Sie Ihren vollständigen HTML-Code teilen? Ich schätze, die Bilder befinden sich in verschiedenen übergeordneten Containern. –

Antwort

0

Verwenden Sie nur img:nth-child(N), wobei N für eine Zahl angibt.

1

Wenn Sie andere HTML-Elemente mit den Tags <img> gemischt haben, müssen Sie :nth-of-type verwenden. Wie in:

img[src='/images/myImage.jpg']:nth-of-type(2) 

Es gibt ein Problem, scrollen Sie nach unten über die Demo, um mehr zu lesen.

Demo

img[src='http://placehold.it/200x40']:nth-of-type(3) { 
 
    border: 5px solid black; 
 
}
<img src="http://placehold.it/200x40" alt="test"> 
 
<div></div> 
 
<img src="http://placehold.it/200x40" alt="test"> 
 
<div></div> 
 
<img src="http://placehold.it/200x40" alt="test"> 
 
<div></div> 
 
<img src="http://placehold.it/200x40" alt="test"> 
 
<div></div> 
 
<img src="http://placehold.it/200x40" alt="test"> 
 
<div></div> 
 
<img src="http://placehold.it/200x40" alt="test"> 
 
<div></div> 
 
<img src="http://placehold.it/200x40" alt="test">

Hinweis
Haltungsart Geist :nth-of-type und :nth-child sind psuedo-Klassen und nur auf Elemente angewendet werden kann, nicht Attribute oder Klassen. Das bedeutet, dass img[src='myImage.jpg']:nth-of-type(4) das 4. img Element auswählt, aber nur wenn es eine src übereinstimmende myImage.jpg hat. Hier ist ein Beispiel.

<img src="http://placehold.it/100x20" alt="test"> 
<img src="http://placehold.it/100x20" alt="test"> 
<img src="http://placehold.it/100x20" alt="test"> 
<img src="http://placehold.it/200x40" alt="test"> 
<img src="http://placehold.it/100x20" alt="test"> 

img[src='http://placehold.it/200x20']:nth-of-type(4) 

Dies führt nicht in jedem Stil ändern, wie der 4. img hat kein src das Attribut in den CSS-Selektor übereinstimmen. Allerdings:

img[src='http://placehold.it/200x20']:nth-of-type(5) 

den Stil auf den fünften img seit dem 5. Bild des src Begegnungen der Wähler gelten.

+0

Gute, vielleicht ist viel besser als: nth-Kind, wenn er mehr HTML-Elemente in der Mitte haben :) – Troyer

+0

Vielen Dank für Ihre Antwort Brett. Das hört sich gut an. Ich dachte nicht an den N-Typ, sondern an das N-Kind. Ich werde es morgen mit deinem Vorschlag versuchen. Danke für die schnelle Antwort :) – Marcel

+0

@Marcel - hat das für Sie funktioniert? –