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

Python Web Scraping:点击指定日期按钮匹配错误的修复咨询

问题:点击日期按钮时选中错误日期的修复方案

我尝试点击包含文本“30 de novembro”(11月30日)的按钮,但现有代码点击的却是“30 de outubro”(10月30日)按钮,该如何修复?

当前使用的代码:

selecdia = navegador.find_element(by=By.LINK_TEXT, value='30')
selecdia.click()
sleep(1)

问题原因

你用LINK_TEXT仅匹配数字“30”,页面中第一个出现的“30”是10月的按钮,因此会被优先选中。需要采用更精准的定位方式区分不同月份的日期按钮。

修复方案

方案1:匹配完整日期文本

直接用完整的日期文本作为匹配条件,确保定位到11月30日的按钮:

# 完整链接文本匹配
selecdia = navegador.find_element(by=By.LINK_TEXT, value='30 de novembro')
selecdia.click()
sleep(1)

如果按钮文本存在嵌套标签导致无法完全匹配,可改用PARTIAL_LINK_TEXT:

selecdia = navegador.find_element(by=By.PARTIAL_LINK_TEXT, value='30 de novembro')
selecdia.click()
sleep(1)

方案2:通过月份容器定位

先定位到11月的日期容器(比如HTML中11月的日期列表有专属的class/id),再在容器内查找30号按钮,避免跨月份匹配:

# 假设11月容器的class为"month-novembro"
novembro_container = navegador.find_element(by=By.CLASS_NAME, value='month-novembro')
selecdia = novembro_container.find_element(by=By.LINK_TEXT, value='30')
selecdia.click()
sleep(1)

方案3:用XPath精准定位

通过XPath直接匹配包含目标文本的元素,定位更灵活:

# 精确匹配文本
selecdia = navegador.find_element(by=By.XPATH, value="//a[text()='30 de novembro']")
selecdia.click()
sleep(1)

如果文本存在空格或格式差异,可使用contains模糊匹配:

selecdia = navegador.find_element(by=By.XPATH, value="//a[contains(text(), '30 de novembro')]")
selecdia.click()
sleep(1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:45:32