如何在Selenium中获取span标签的值?解决AttributeError报错求助
问题解决方法
错误根源
driver.find_elements()返回的是WebElement对象的列表,列表本身没有get_attribute()方法,你需要操作列表中的单个元素。- span标签的内容属于页面显示文本,
value属性多用于input这类表单控件,获取span的内容应该用文本获取方式,而非value属性。
修正后的代码方案
方案1:直接获取单个目标元素(推荐,分页的最后一页标签通常仅存在一个)
# 使用find_element(单数形式)获取单个匹配元素 page_length = driver.find_element(By.CSS_SELECTOR, "section.PaginationRow-module__container___LxZJN span.PaginationRow-module__lastPage___k9Pq7") # 获取span标签的显示文本 page_len_x = page_length.text print(page_len_x)
方案2:处理元素列表(适配存在多个匹配元素的场景)
page_lengths = driver.find_elements(By.CSS_SELECTOR, "section.PaginationRow-module__container___LxZJN span.PaginationRow-module__lastPage___k9Pq7") # 先检查列表是否有元素,再取第一个元素的文本 if page_lengths: page_len_x = page_lengths[0].text print(page_len_x) else: print("未找到目标span元素")
补充说明
从截图的标签形态来看,目标span显示的是分页总页数,直接用.text就能获取到页面上显示的数值,无需调用get_attribute方法。
内容的提问来源于stack exchange,提问作者AnxiousDino
相关产品推荐
相关产品推荐

