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

如何用Selenium通过data-time定位日历弹窗中的div元素?

通过data-time定位日历日期元素的可行方案及问题排查

完全可以通过data-time="1698822000000"定位目标元素,你遇到的Unable to locate element错误,通常是由以下几种常见问题导致的,对应解决方法如下:

  • 弹窗未加载完成:日历属于动态弹窗,必须先触发弹窗显示,且等待弹窗内元素完全渲染后再执行定位操作。
  • 缺少显式等待:直接执行定位代码时,元素可能还未被浏览器渲染,需添加显式等待确保元素处于可交互状态。
  • CSS选择器写法错误:正确的CSS选择器应为div[data-time="1698822000000"],或结合类名更精准定位:.day.unit.in-range[data-time="1698822000000"],检查你的选择器是否存在语法错误。
  • 元素处于iframe中:如果日历弹窗嵌套在iframe内,需要先切换到对应iframe上下文再进行元素定位。

示例代码(以Selenium Python为例)

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 打开目标页面
driver.get("https://twitchtracker.com/riotgames/games")
# 触发日历弹窗(需替换为实际打开日历的按钮选择器)
# driver.find_element(By.CSS_SELECTOR, "日历触发按钮的选择器").click()

# 等待目标元素可点击后执行点击操作
target_date = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, 'div[data-time="1698822000000"]'))
)
target_date.click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:32:36