selenium用XPATH直接獲取屬性值 需要使用.get_attribute(“屬性名”)

瑞0908發表於2019-02-16

在使用selenium進行抓取url的時候,試圖使用find_elements_by_xpath來獲取。
因此想當然的直接使用XPATH的語法進行獲取屬性
事例縮略後xml結構如下

<div class="qg-limit-list" data-spm="1998564503" data-spm-max-idx>
<a href="//item.taobao.com/item.htm?spm=a21bz.7725273.1998564503.46.1Tdtjr">
<img src="//img.alicdn.com/tps/TB1lUEgLpXXXXbzXXXXXXXXXXXX-114-114.png" class="qg-img-tag">

按照XPATH正常的語法,想要獲取a標籤的url也就是href的屬性應該寫作

//div[@class="qg-limit-list"]/a/@href

然而在使用find_elements_by_xpath一直報錯,顯示只能存放element而不是object。
最後的解決辦法就是,這裡只取到標籤級,想要獲取元素在之後再獲取如下

xpath_urls = `//div[@class="qg-limit-list"]/a`
urls_pre = browser.find_elements_by_xpath(xpath_urls)
url = urls_pre[0].get_attribute("href")

對,就是加.get_attribute(“href”),同理想要獲得其他屬性值,也可以通過他來獲取。
同時我還發現,使用.get_property(“href”)也可以取到屬性值,暫時未發現這2個方法得區別。

相關文章