【问题标题】:how selenium webdriver get data with class name?selenium webdriver如何获取具有类名的数据?
【发布时间】:2020-07-11 23:18:45
【问题描述】:
<li class='temp'> text1 </li>
<li class='temp'> text2 </li>
<li class='temp'> text3 </li>
在这段代码中,我想收集所有具有 'temp' 类的文本。
driver.find_element_by_class_name('temp').text
但此代码仅获取 text1。如何使用 webdriver 获取所有文本?
【问题讨论】:
标签:
python-3.x
selenium
webdriver
web-crawler
【解决方案1】:
如果页面中有多个具有相同条件的元素,.find_element 指的是第一个元素。
您可以使用.find_elements 作为列表收集并使用循环提取它:
elements = driver.find_elements_by_class_name('temp')
for element in elements:
element.text
或者你可以使用ul标签作为父标签来获取li的所有文本:
<ul class='...'>
<li class='temp'> text1 </li>
<li class='temp'> text2 </li>
<li class='temp'> text3 </li>
</ul>
使用.find_element,但请定位指向ul的元素。
【解决方案2】:
我相信它有效。请试试这个。
from selenium.webdriver.common.by import By
driver.find_elements(By.CLASS_NAME, 'temp')