使用Selenium抓取div文本时提示'list'对象无text属性如何解决?
问题原因
你调用的find_elements_by_xpath是复数查找方法,返回的是所有匹配XPath规则的WebElement对象组成的列表,列表本身没有text属性,只有单个WebElement实例才有text属性,因此触发了AttributeError。
解决方法
- 如果你只需要提取第一个匹配元素的文本:可以把查找方法改成单数形式,或者取列表的首个元素再调用
text,示例代码:
# 方案1:直接用单数查找方法 ticker = driver.find_element_by_xpath('//body/div[4]/div/div/div/div[1]/div') print(ticker.text) # 方案2:对列表做判空后取第一个元素 ticker_list = driver.find_elements_by_xpath('//body/div[4]/div/div/div/div[1]/div') if len(ticker_list) > 0: print(ticker_list[0].text) else: print("未匹配到对应元素")
- 如果你需要提取所有匹配元素的文本:遍历列表逐个读取
text属性即可,示例代码:
ticker_list = driver.find_elements_by_xpath('//body/div[4]/div/div/div/div[1]/div') for item in ticker_list: print(item.text)
内容的提问来源于stack exchange,提问作者Leah
相关产品推荐
相关产品推荐

