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

Selenium点击页面span标签后无法获取movieTime文本问题求助

问题原因

  1. XPath表达式缺失内容提取逻辑
    你注释了原本正确的场次提取路径,新写的路径只选中了ul节点,没有向下查找子节点li的文本内容,也没有调用extract()方法提取结果,最终拿到的只是空的选择器对象列表。
  2. 日期点击逻辑存在冲突
    你一次性遍历点击了所有电影对应的次日日期<span>标签,但网页的交互逻辑是点击其他区域/其他电影的日期控件时,已经切换到次日的电影会自动恢复为当日日期,你统一获取页面源码时,只有最后一个被点击的电影处于次日日期状态,其余电影都是当日状态,自然拿不到次日场次。

修复方案

  1. 还原并修正次日场次的XPath表达式,补全文本提取逻辑:
# 取消原有注释的正确路径,补全提取方法
movieTime = secondHtmlNode.xpath('./div[@class="tickets_movie_time"]/div[@class="tickets_times"]/div[@class="tickets_date"]/div[3]/div/div[@class="tickets_date_csbox"]/div/ul/li/text()').extract()
  1. 调整日期点击与数据提取逻辑,逐个处理单部电影,避免点击失效:
# 原有当日数据提取逻辑不变
allMovies = self.driver.find_elements_by_xpath('//section[@class="tickets_movie_time_box"]')
tomorrow_movie_list = []
for index, movie in enumerate(allMovies):
    # 找到当前电影对应的次日日期span
    tomorrowSpan = movie.find_element_by_xpath(f'.//span[text()="{tomorrow}"]')
    # 滚动到可见区域再点击
    self.driver.execute_script("arguments[0].scrollIntoViewIfNeeded()", tomorrowSpan)
    tomorrowSpan.click()
    time.sleep(1)
    # 点击后立即提取当前电影的次日场次,避免后续点击导致当前电影日期回弹
    movieCnName = movie.find_element_by_xpath('./div[@class="tickets_movie_time"]/div[@class="tickets_times"]/div[@class="tickets_times_t"]/div[@class="times_title"]').text
    movieEnName = movie.find_element_by_xpath('./div[@class="tickets_movie_time"]/div[@class="tickets_times"]/div[@class="tickets_times_t"]/div[@class="times_title_en"]').text
    movieTime = [i.text for i in movie.find_elements_by_xpath('./div[@class="tickets_movie_time"]/div[@class="tickets_times"]/div[@class="tickets_date"]/div[3]/div/div[@class="tickets_date_csbox"]/div/ul/li')]
    tomorrow_movie_list.append({
        "cn_name": movieCnName,
        "en_name": movieEnName,
        "time": sorted(movieTime)
    })
  1. 可选优化:将固定time.sleep替换为Selenium显式等待,等待场次节点加载完成后再提取数据,避免网络波动导致的空数据问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:45:04