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

使用Python Selenium选择Zalando网站下拉菜单鞋码失效问题咨询

Zalando鞋码选择代码失效原因及解决方案

Select函数失效核心原因

Selenium内置的Select类仅支持处理HTML原生<select>标签渲染的下拉菜单,Zalando站点的鞋码选择器是前端自定义的<div>/<button>标签实现的交互组件,没有使用原生select标签,所以Select类完全不适用。

你代码中存在的其他问题

  • find_elements_by_tag_name方法的入参应为HTML标签名(比如div、button),你传入的是CSS类名组合,属于方法调用错误,无法匹配到任何元素
  • 使用的绝对路径Xpath稳定性极差,站点前端结构稍有更新就会定位失败
  • 没有添加页面加载等待逻辑,很容易出现元素未渲染完成就执行查找操作的异常
  • 最后一行的click没有加括号,只是获取了方法引用没有实际执行点击操作

正确实现代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from fake_useragent import UserAgent
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

options = Options()
ua = UserAgent()
userAgent = ua.random
options.add_argument(f'user-agent={userAgent}')
# 如需后台运行可开启无头模式
# options.add_argument('--headless=new')

driver = webdriver.Chrome(options=options)
driver.get("https://www.zalando.it/nike-sportswear-air-force-1-07-lv8-sneakers-basse-whiteblackwolf-grey-ni112o0m9-a11.html")

# 显式等待10秒,直到鞋码选择区域加载完成
wait = WebDriverWait(driver, 10)
size_area = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div[data-testid="size-picker"]')))

# 定位所有可选的鞋码按钮,排除售罄不可选的选项
size_buttons = size_area.find_elements(By.CSS_SELECTOR, 'button[aria-disabled="false"]')

# 替换为你需要选择的鞋码
target_size = "42"
for btn in size_buttons:
    if btn.text.strip() == target_size:
        btn.click()
        print(f"已成功选择鞋码{target_size}")
        break

内容的提问来源于stack exchange,提问作者Luigi V.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:06:03