Używam dużo XPath podczas lokalizowania elementów na stronach internetowych przy użyciu Selenium i odeszliśmy od korzystania z węzła1 // węzeł2 w kierunku korzystania z węzła1/potomka :: węzeł2 jeszcze niedawno. Jaka jest różnica między tymi dwoma metodami? Czy jest bardziej wydajny niż inny?Jaka jest różnica między węzłem // i potomkiem :: węzeł w ścieżce xpath?
fragmentPrzykład XML wykazać:
<div id="books">
<table>
<tr><td class="title">Lord of the Rings</td><td class="author">JRR Tolkein</td></tr>
<tr><td class="title">The Hitch-Hikers Guide to the Galaxy</td><td class="author">Douglas Adams</td></tr>
</table>
</div>
Więc byłoby:
id('books')//td[@class='title']
lub:
id('books')/descendant::td[@class='title']
powinienem prane TR przed pytaniem. Dla innych http://www.w3.org/TR/xpath#path-abbrev jest odpowiednią sekcją. Wydaje się jednak, że // jest skrótem od potomka, więc nie jest dokładnie taki sam.Powodem, dla którego nie korzystałem z //, jest to, że // węzeł [1] nie jest tym samym, co/descendant :: node [1] –
. Rozszerzyłem ten punkt powyżej. // nie jest potomkiem ani nie jest potomkiem, to jest potomkiem-lub-ja/dzieckiem .... który wygląda dla mnie bardzo podobnie jak potomek. –
Uzgodnione. Zrozumiano. :) –