xpath選擇當前結點的子節點

在通過selenium使用xpath選擇節點的時候,可能會遇到這麼一種情況:在指定的當前節點下搜索滿足要求的節點。

node = driver.find_element_by_xpath("//div[@class='WB_cardwrap S_bg2 clearfix']")
BZNC = node.find_element_by_xpath("//div[@class='feed_content wbcon']/a[@class='W_texta W_fb']").text
BZZY = node.find_element_by_xpath("//div[@class='feed_content wbcon']/a[@class='W_texta W_fb']").get_attribute("href")

以上代碼有什麼錯誤嗎?貌似沒有,一切都很完美。
先拿到node節點,然後在node節點的子節點中搜索滿足條件的節點並取出text及屬性。
but!運行的結果卻是把整個html中所有滿足條件的節點都找出來了,而並非是node節點下的!!!

仔細想一想,”//div”貌似就是搜索整個html下的div,即使是node下的find_element_by_xpath方法!
所以,只需要在”//”前面加上表示當前路徑的”.”既可,也就是node.find_element_by_xpath(“.//div”)

(By MrHammer 2016-05-02 下午6點 @Bin House Rainy)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章