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

Excel VBA+Selenium:点击列表元素切换焦点以切换页面数据

Excel VBA 实现网页按钮切换(This season/All time)

核心问题

你当前定位的是li元素,但实际触发数据切换的是li内部的button标签,直接操作li无法触发页面数据更新,需要定位到对应button再模拟点击。

具体实现方法

1. 通过button的value属性精准定位

利用button的value属性直接找到目标按钮,代码示例:

' 切换到「All time」按钮
Dim allTimeBtn As Object
Set allTimeBtn = IE.FindElementByXPath("//button[@value='All time']")
allTimeBtn.Click

' 切换回「This season」按钮
Dim thisSeasonBtn As Object
Set thisSeasonBtn = IE.FindElementByXPath("//button[@value='This season']")
thisSeasonBtn.Click

2. 通过li元素索引定位(按钮顺序固定时可用)

如果两个按钮的位置不会变化,可先获取所有li元素,再通过索引区分并点击内部按钮:

' 获取所有导航项li元素
Dim navItems As Object
Set navItems = IE.FindElementsByClass("shared-filter-button-list_navItem__ZiG2J")

' 切换到「All time」(第二个li,索引从0开始为1)
navItems(1).FindElementByTag("button").Click

' 切换回「This season」(第一个li,索引0)
navItems(0).FindElementByTag("button").Click

3. 动态页面需添加等待逻辑

如果页面是动态加载,按钮可能需要等待加载完成才能点击,可添加等待代码:

' 等待页面加载完成
Do While IE.Busy Or IE.ReadyState <> 4
    DoEvents
Loop

' 执行按钮点击
Set allTimeBtn = IE.FindElementByXPath("//button[@value='All time']")
allTimeBtn.Click

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:25:38