2013-04-03 25 views
7

ben ne olacağını n bilmiyorum son 'hizmet-n' satırı seçin nasıl selenium xpath, bir tablodaki son eşleşen elemanın nasıl seçilir?

<table> 
    <tr> 
    <td>service1</td> 
    </tr> 
    <tr> 
    <td>service2</td> 
    </tr> 
    <tr> 
    <td>service3</td> 
    </tr> 
    <tr> 
    <td>blip</td> 
    </tr> 
</table> 

Verilen? [last()] eklemeye çalıştım ama işe yaramadı.

//table//tr//td[contains(text(),'service')] 

ama 1 satırı seçer ve Sonuncusunu istiyorum:

ben var.
tr[3] kullanamıyorum çünkü gerçekte 'service-n' satır sayısı dinamiktir ve çok şey değiştirir. Ben nereye koyduğunuzu

cevap

13

cevap tam olarak [son()] ve ben buraya yanlış yerde

içinde olduğunu:

//div[@id='content']//table//tr[last()]//td[contains(text(),'service')][last()]/following-sibling::td[2] 

Burada değil:

//div[@id='content']//table//tr[last()]//td[contains(text(),'service')]/following-sibling::td[2][last()] 
+3

+ 1 [geçen()]' – Konstantin

+0

@MichaelDurrant şaşırtıcı malzeme (1) – DebanjanB

1

cssSelector ile bu şekilde deneyin.

By.cssSelector("table tr:last-child td") 
tr 'için
0
List<WebElement> allElement=fd.findElements(By.xpath("//table//td[contains(.,'service')]"); 
int count=allElement.size(); 
allElement.get(count-1).click(); 
+0

Hi Suresh Shaw; Kodunuz doğru olabilir, ancak bazı bağlamlarda daha iyi bir cevap verebilir; Örneğin, önerilen bu değişikliğin nasıl ve neden bu sorunun nedenini çözebileceğini açıklayabilirdiniz, belki de ilgili belgelere bir bağlantı da dahildir. Bu, onları daha yararlı kılacak ve benzer sorunlara çözüm arayan diğer site okuyucuları için daha faydalı olacaktır. –

İlgili konular