微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

selenium 无法用XPATH直接获取属性值 需要使用.get_attribute(“属性名”)

在使用selenium进行抓取url的时候,试图使用find_elements_by_xpath来获取
因此想当然的直接使用XPATH的语法进行获取属性
事例缩略后xml结构如下

<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个方法得区别。

原文地址:https://www.jb51.cc/wenti/413568.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐