java - last() is not applied -


i using selenium , java write test, below dom:

<body>     <div class='t'><span>1</span></div>  <div class='t'></div>  <div class='t'><span>2</span></div>  <div class='t'><span>3</span></div>  <div class='t'><span>4</span></div>  <div class='t'><span>5</span></div>  <div class='t'><span>6</span></div>  <div class='t'><span>7</span></div>  <div class='tt'></div>  </body> 

when use: //div[@class='t'][last()] get:

<div class="t"><span>7</span></div> 

but when use: //div[@class='t' , last()] get:

<div class="t"><span>1</span></div> <div class="t"/> <div class="t"><span>2</span></div> <div class="t"><span>3</span></div> <div class="t"><span>4</span></div> <div class="t"><span>5</span></div> <div class="t"><span>6</span></div> <div class="t"><span>7</span></div> 

it's last() not applied second xpath, why?

//div[@class='t'][last()] ... means pick element list of matches (where @class='t') index last, want.

with //div[@class='t' , last()], already-calculated value of last() applied each match in list purely on basis of being != 0, , cause div matcher return false if last() zero. in other words, last() not used select single node list. that's not want.

for example: if last() evaluates 5, //div[@class='t' , 5] return every matching element in list because 5 != 0.

the net result if any nodes matched (last() > 0), all of them returned.

see also: xslt getting last element


Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -