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

Selenium技术问题:遍历不同类名子元素时价格提取重复

问题:遍历子元素时重复获取第一个元素的价格

场景:需要遍历父元素的子元素,提取每个子元素对应的价格信息,但现有代码每次都输出第一个元素的价格,而非对应子元素的价格。

现有代码:

pack_size_elements =  wd.find_elements(By.XPATH , "//div[@class='_1LiCn']/div")
for element in pack_size_elements:
    price = element.find_element(By.XPATH, "//span[@class ='_2j_7u']").text.strip()
    print(price)

当前输出:

Rs 61
Rs 61
Rs 61
Rs 61

期望输出:

Rs 61
Rs 299.50
Rs 1797
Rs 1830

问题原因

你写的XPath //span[@class='_2j_7u']是从整个HTML文档的根节点开始搜索,所以每次循环都会找到页面中第一个匹配的价格元素,而非当前遍历的子元素下的价格。

修正方案

把XPath改成相对路径,在开头加.,表示从当前遍历的element节点下开始查找:

pack_size_elements =  wd.find_elements(By.XPATH , "//div[@class='_1LiCn']/div")
for element in pack_size_elements:
    # 这里的.表示从当前element节点开始搜索子节点
    price = element.find_element(By.XPATH, ".//span[@class ='_2j_7u']").text.strip()
    print(price)

这样循环时,每次都会从当前子元素下查找对应的价格节点,就能输出正确的对应价格了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:42:41