You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium使用find_elements_by_xpath获取元素文本重复问题咨询

问题解决方法

一、获取每个style元素下的info文本

你的代码问题出在XPath路径:循环中使用//*[@class="info"]是从整个文档根节点开始查找,所以每次都返回第一个匹配的元素,而非当前父元素的子元素。需要改用相对路径,在XPath前加.表示从当前元素上下文开始查找:

info_elements = driver.find_elements_by_xpath('//*[@style="background-color: initial;"]')
for elem in info_elements:
    # 使用.//限定查找范围为当前元素的后代节点
    my_text_elem = elem.find_element_by_xpath('.//*[@class="info"]')
    print(my_text_elem.text)

二、单独获取第4个style元素下的info文本

方法1:直接通过XPath索引定位

XPath的索引从1开始,直接在表达式中指定第4个目标元素:

fourth_info_text = driver.find_element_by_xpath('(//*[@style="background-color: initial;"])[4]//*[@class="info"]').text
print(fourth_info_text)

方法2:先获取所有元素再取指定索引

Python列表索引从0开始,取索引3对应第4个元素,同时建议增加长度判断避免索引越界:

info_elements = driver.find_elements_by_xpath('//*[@style="background-color: initial;"]')
if len(info_elements) >= 4:
    fourth_elem = info_elements[3]
    fourth_info_text = fourth_elem.find_element_by_xpath('.//*[@class="info"]').text
    print(fourth_info_text)
else:
    print("未找到足够数量的符合条件元素")

内容的提问来源于stack exchange,提问作者cmarios

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:45:04