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

如何用Excel VBA+Selenium提取含-follow的data-testid属性值?

解决Excel VBA + Selenium获取Twitter用户follow按钮data-testid属性的问题

嘿,我一眼就看出问题所在了——你现在用.Text去提取元素内容,但实际上你要的是**data-testid这个HTML属性的值**,不是元素在页面上显示的文本,这就是为啥拿不到预期结果的核心原因!

咱们来一步步修正你的代码,让它精准拿到想要的内容:

核心问题拆解

你原来的代码里,Result(i).Text是抓取元素的可见文本,但目标元素的data-testid是隐藏在HTML结构里的属性,不属于显示文本范畴,必须用Selenium的.Attribute()方法来读取。另外,你原来的XPath定位太宽泛,要遍历所有带data-testid的元素,咱们可以直接精准定位到以-follow结尾的目标元素,省掉不必要的遍历。

修改后的完整可运行代码

Set d = New ChromeDriver
d.Start "Chrome"
Set Rng = Range(Worksheets("followers").Range("A2"), Worksheets("followers").Range("A2").End(xlDown))

For Each Cell In Rng
    If Cells(Cell.Row, 2).Value2 = "" Then
        user = Cell.Value2
        user = Replace(user, "@", "", 1, 1) ' 移除用户名前的@符号
        
        d.Get "https://twitter.com/" & user ' 跳转到目标用户主页
        
        ' 直接定位data-testid后缀为"-follow"的div元素,无需遍历所有元素
        Set targetElement = d.FindElementByXPath("//div[ends-with(@data-testid, '-follow')]")
        
        If Not targetElement Is Nothing Then
            ' 读取data-testid属性的完整值
            Dim testIdContent As String
            testIdContent = targetElement.Attribute("data-testid")
            
            ' 拆分出前面的数字ID部分
            Dim userId As String
            userId = Split(testIdContent, "-follow")(0)
            
            ' 将结果写入B列对应行
            Cells(Cell.Row, 2).Value2 = userId
        End If
    End If
Next

' 操作完成后记得关闭浏览器
d.Quit
Set d = Nothing
Set targetElement = Nothing

关键修改点说明

  • 精准XPath定位://div[ends-with(@data-testid, '-follow')]直接筛选出所有符合格式的目标元素,避免遍历35个无关元素,大幅提升效率。
  • 正确读取属性:用targetElement.Attribute("data-testid")替代Result(i).Text,这才是获取HTML元素属性值的正确方式。
  • 简洁拆分数字:用Split()函数按-follow拆分属性值,直接取第一部分就是你要的数字ID,比InStr+Left的组合更可靠简洁。

稳定性优化提示

如果遇到页面加载慢导致元素找不到的情况,可以在d.Get之后加一段等待逻辑:

' 强制等待5秒,让页面完全加载(简单粗暴版)
d.Wait 5000

' 或者用显式等待,等元素出现后再操作(更智能稳定)
d.WaitUntil ElementIsPresent, "//div[ends-with(@data-testid, '-follow')]", 10 ' 最多等待10秒

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:32:39