在使用Selenium定位網頁中的元素時,我使用了很多XPath,並且已經從最近使用node1 // node2轉向使用node1/descendant :: node2。這兩種方法有什麼區別?比另一個更有效率嗎?xpath中的// node和/ descendant :: node有什麼區別?
示例XML片段演示:
<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>
所以它會是:
id('books')//td[@class='title']
或:
id('books')/descendant::td[@class='title']
採取我應該問之前已經走遍了TR。對於其他人http://www.w3.org/TR/xpath#path-abbrev是相關部分。這似乎表明,//對於後代或自己來說不完全相同。另外,我不使用//的原因是// node [1]不同於/ descendant :: node [1] – 2009-10-08 13:36:09
我已經在上面的那點展開了。 //不是後代或自我,它是後代或自己/孩子......這對我來說看起來非常像後裔。 – 2009-10-08 13:38:26
同意。注意到。 :) – 2009-10-08 13:40:59