so für Ihre XPath, Sie mit dem Element gestartet werden soll Sie leicht oder die Wurzel identifizieren können, in diesem Fall ist die erste div
wo Klasse 'a-row a-spacing-small'
:
//div[@class='a-row a-spacing-small']
Als nächstes wäre zu identifizieren, wie Ihr Element zu diesem Root-Element, so in diesem Fall, möchten Sie eine href
, die in einem a
wäre und das sollte innerhalb der div
wir identifiziert..aber du bist nicht sicher, ob es ein ist direktes Kind. .so Sie verwenden //
:
//div[@class='a-row a-spacing-small']//a/@href
aber dann wollen Sie nur dieses Element, wenn die div
neben ihm ein condition..so erfüllt sollten wir etwas am Anfang des XPath vor dem XPath setzen wir
//<somexpath>/div[@class='a-row a-spacing-small']//a/@href
aber was für XPath hab schon ... erstellt? was wir wissen, ist, dass wir die zweite div
die Wurzel machen, da sie die Bedingung, die wir wollen, haben ...
//div[@class='a-row']
so wie funktioniert die ersten div
bezieht sich auf unsere neue Wurzel? es ist ein preceding-sibling
, weil es vor der neuen Wurzel ist, und es ist auf dem gleichen Niveau ..
//div[@class='a-row']/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
jetzt, was die Bedingung ist, müssen wir es in der Wurzel gehören ...
//div[@class='a-row' and <condition>]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
Beispiele:
, wenn die Bedingung ist, dass die div Benutzer a
mit dem Text "bedingten Link" haben sollte: //div[@class='a-row' and .//a[text()='conditional link']]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
, wenn die Bedingung ist, dass die div ein behindertes Attribut haben sollte: //div[@class='a-row' and @disabled]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
wie etwa ohne disabled-Attribut? //div[@class='a-row' and not(@disabled)]/preceding-sibling::div[@class='a-row a-spacing-small']//a/@href
spielen mit ihm ...
Können Sie detaillierter 'HTML' teilen? Was ist diese Bedingung? – Andersson