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

Selenium无法通过CLASS_NAME定位日历子元素问题求助

问题原因与解决方法
  • 核心问题:By.CLASS_NAME 仅支持传入单个类名,你用空格分隔多个类名的写法不符合该方法的规则,因此无法定位到元素。
  • 解决方案:改用CSS选择器实现多类名组合定位,同时可以精准筛选出可用日期(排除带is-disabled类的禁用日期)。

修正后的代码示例

calendar_container = driver.find_element(By.CLASS_NAME, "vc-pane-container")
print('calendar_container - ', calendar_container)

# 定位容器内所有可用日期(同时拥有vc-day-content、vc-focusable类,且无is-disabled类)
available_days = calendar_container.find_elements(By.CSS_SELECTOR, ".vc-day-content.vc-focusable:not(.is-disabled)")
print('可用日期元素数量 - ', len(available_days))

# 点击第一个可用日期(存在则执行)
if available_days:
    available_days[0].click()

关键说明

  • CSS选择器中,.class1.class2.class3 表示同时拥有这三个类的元素;
  • :not(.is-disabled) 用于排除带有禁用标记的元素,正好匹配你点击可用日期的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:52:39