打印div标签selenium python3中的所有内容

时间:2019-12-17 12:31:29

标签: python-3.x selenium selenium-webdriver

我正在尝试抓取这样的网站,该网站的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:“列表”对象没有属性“文本”

我做错了什么?

2 个答案:

答案 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();