今天我的網頁架構如下,我想要得到aaabbbccc這個值, 但這個table又沒有可以取得的class或id,於是就可以使用Xpath
item1 | 12345678910 |
item2 | aaabbbccc |
webdriver.By.xpath("//tr[contains(.,'item2')]//td[2]")
用口語一點的說法是"在含有item2這個字的tr(tr[contains(.,'item2')])的下一層(//)裡的第二個td(td[2])
當時我有6成信心這樣寫應該是對的
但就是一直出錯,而且我還不知道要怎麼印出這個值
後來把他sendkey到一個input上才看到原因出在哪裡,
當時印出來變成item1 12345678910 ...
可能礙於那個input有字數限制,不然應該會把整個table裡的所有值都印出來
後來才發現原來這個table外面還有一個table:
也就是說tr[contains(.,'item2')]的這個寫法會被視為你要長的是最外層的那個tr,而不是item2外面的那個tr
而你現在要找最外層那個tr裡面的第二個td
... | /*<-選到這個*/
|
所以最後寫法是
webdriver.By.xpath("//table//tbody//tr//table//tr[contains(.,'item2')]//td[2]"))
沒有留言:
張貼留言