2016-05-01 11 views
0

Ich habe auf einem Selen-Skript arbeite für: http://live.guru99.com/index.php/mobile.html?dir=asc&order=positionSelen: Auswählen Element basierend auf Geschwisterelement Text

und will das Element "Add to Compare" für "Sony Xperia" aber es ist nicht lokalisieren auszuwählen. Ich habe versucht mit cssSelector und xpath beide aber nicht in der Lage herauszufinden, was ich falsch mache.

CSS-Selektor:

div.category-products > ul > li:nth-child(n):contains('Sony Xperia') > div > div.actions > ul > li:nth-child(2) > a

XPath:

//h2/a[@title='Sony Xperia']/ul/li/a[text()='Add to Compare']

HINWEIS: Die cssSelector wird in Chrome Ortung aber kein Ergebnis in Firefox

Antwort

1

in der zweiten Reihe geben das Teil, das du verloren hast

//h2[a[@title='Sony Xperia']] 
/following-sibling::div[@class='actions'] 
/ul/li/a[text()='Add to Compare'] 
+0

hinzufügen In deiner Antwort: // h2 [a [@ title = 'Sony Xperia']]] hast du eckige Klammern vor 'a' benutzt, also warum sollte es nicht '/' sein, da 'a' kein Attribut von h2 ist. Korrigieren Sie mich, da mein Verständnis ist, dass [] für Attribut für ein Element verwendet wird. –

+0

mit eckigen Klammern findet es h2, das Tag 'a' mit Bedingung hat. Mit Zusammenstoß findet es Tag 'a' und findet dann davon – splash58

+0

Danke, es hat funktioniert. Aber kann es auf cssSelector auch als seine Arbeit in Chrom aber in firefox seine Lokalisierung nicht beheben –

0

Dies ist der xpath, der überall funktionieren soll.

XPath: //h2/a[@title='Sony Xperia']/../following-sibling::div[3]/ul/li[2]/a

Siehe unten die Schritte, um es im Detail zu verstehen.

Schritt 1: Navigieren Sie zu einem festen Knoten des Elements: //h2/a[@title='Sony Xperia'] (Sie haben dies bereits getan)

Schritt 2: es Navigieren Eltern durch Hinzufügen /..

Schritt 3: Navigieren Sie zu ihm Geschwister ' Aktionen /following-sibling::div[3] wie die ‚Aktion‘ Klasse ist am 3. Position von der aktuellen Position

Schritt 4: innerhalb der Aktionen Knoten gehen und erreichen ‚ul‘ /ul

S TEP 5: Nun existiert 'auf die Vergleichsliste' innerhalb des zweiten 'li' hinzufügen, so /li[2]

Schritt 6: As 'auf die Vergleichsliste' ist ein Link, wird es im Inneren ein sein 'a' so /a

Verwandte Themen