我正在尝试抓取这样的网站,该网站的div标签下有这样的信息
<div> id="searchResults" class="multiple-view-elements"
<span>name</name>
<span>info</name>
<span>info</name>
<span>name</name>
......
我的代码
print ('-------------------------------------------------------------')
resp=driver.find_elements_by_id('searchResults').text
print (resp)
driver.quit()
它给了我这个错误
AttributeError:“列表”对象没有属性“文本”
我做错了什么?
答案 0 :(得分:1)
因为您正在使用find_elements
。返回元素列表和“列表”对象没有属性/方法“文本”的
使用find_element
,例如resp=driver.find_element_by_id('searchResults').text
获取单个元素
答案 1 :(得分:0)
您尝试从div元素获取text属性,但是该元素没有包含文本。
例如
<h3 class="LC20lb">Hi | Definition of Hi by Merriam-Webster</h3>
此处标头h3包含嗨| Merriam-Webster对Hi的定义
因此,如果执行“获取文本”方法,则此处将显示“嗨| Merriam-Webster定义的嗨”,但是您的网络元素div没有包含contains属性的文本,因此获取文本在那里失败。
所以只需清除您的问题即可。
如果任何网络元素具有文本属性或包含文本,则可以尝试
String value= driver.findElement(By.id("")).getText();