如何使用Python中的Selenium提取li标签内的文本
解决Selenium提取li标签文本的问题
嘿,你的问题出在对find_elements_by_tag_name返回值的理解上!这个方法返回的是多个WebElement组成的列表,而列表本身并没有.text属性,所以直接调用items.text肯定会报错或者拿不到内容。我给你几个可行的解决方案:
方案1:精准定位单个目标li元素
既然你的目标li有明确的class属性,不如直接用更精准的定位方式找到这个元素,再获取文本:
# 方法A:使用CSS选择器 target_li = driver.find_element_by_css_selector("li.inline.t-24.t-black.t-normal.break-words") print(target_li.text.strip()) # strip()用来去除文本前后的空格 # 方法B:使用XPath target_li = driver.find_element_by_xpath("//li[@class='inline t-24 t-black t-normal break-words']") print(target_li.text.strip())
方案2:遍历所有li元素并筛选目标
如果你需要处理页面上所有li元素,再筛选出你要的那一个,可以遍历列表,逐个检查元素的class属性:
items = driver.find_elements_by_tag_name("li") for item in items: # 检查当前li的class是否匹配目标 if "inline t-24 t-black t-normal break-words" in item.get_attribute("class"): print(item.text.strip())
关键提醒
find_element_*(单数形式)返回单个WebElement对象,支持.text属性;find_elements_*(复数形式)返回WebElement列表,必须遍历每个元素才能获取文本;- 使用
.strip()可以去除文本前后的空白字符,让结果更干净。
内容的提问来源于stack exchange,提问作者nilesh
相关产品推荐
相关产品推荐

