【问题标题】:vba click a website buttonvba 点击一个网站按钮
【发布时间】:2016-02-20 19:03:09
【问题描述】:

我有一些过去可以正常工作的代码,但由于某种原因,它已停止选择显示“您的联赛”的标签。 该代码将实时足球比分拉入excel。 我需要帮助的唯一一点是我需要从所有游戏导航到您的联赛(代码无法识别该按钮,因此无法单击它)。任何帮助将不胜感激。谢谢。

 'Define Variables
        url = "http://www.futbol24.com/Live/livenow/"


    'Open url
        ie.Visible = False
        ie.Navigate url
        frmbusy.lbstatus.AddItem "Navigating to Web Page"
        busywait

    'Navigate from ALL Games to Your Leagues
        Set tagname = ie.Document.getelementsbytagname("*")

        For z = 0 To tagname.Length - 1
           If tagname(z).ID = "f24com_i18n_btnChooseLeague_your" Then
                tagname(z).Click
                busywait
            End If
        Next

【问题讨论】:

  • 请查看该页面的HTML源代码,您会发现IDf24com_btnChooseLeague_your不存在。
  • 也没有一个标签显示“你的联赛”(至少当我查看它时没有,如果你登录可能会有所不同......)有时网站会改变它们的构建方式,并且发生这种情况时,您需要修改代码。
  • 道歉。我已经更新了标签名称:“f24com_i18n_btnChooseLeague_your”,但它仍然没有点击它。谢谢。
  • Click 显然不是为这个控件任何事情的事件。您可能想考虑使用 Selenium 包装器来自动化 IE/Firefox/Chrome,以我的经验,它比直接尝试直接自动化 IE 更可靠。此外,如果您的 IE 版本支持该方法,请考虑使用ie.Document.getElementByID("f24com_i18n_btnChooseLeague_your"),那么您将不需要z 循环,因为它将直接处理元素。您可能需要以某种方式操作父元素,但我无法确定。
  • 另外,如果您可以将屏幕截图上传到 imgur.com 并指出 该控件或其父控件在页面上的位置,我真的找不到它,这使得很难排除故障。

标签: html excel vba button web-scraping


【解决方案1】:

您可以使用 querySelector 来定位

#f24com_btnChooseLeague_choose > a > span

这是a 标记中的span 标记,元素ID 为#f24com_btnChooseLeague_choose

您可以简单地将其缩短为 #f24com_btnChooseLeague_choose > a

Option Explicit
Public Sub ClickChooseLeagues()
    Dim ie As New InternetExplorer
    With ie
        .Visible = True
        .navigate "https://www.futbol24.com/Live/livenow/"

        While .Busy Or .readyState < 4: DoEvents: Wend
        .document.querySelector("#f24com_btnChooseLeague_choose > a").Click

        Stop
    End With
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-22
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 2021-05-07
    • 2016-06-15
    相关资源
    最近更新 更多