对象htmldivelement不会单击IE11

时间:2019-02-13 14:42:55

标签: excel vba web-scraping internet-explorer-11

将转到学校页面,然后单击“赞”按钮。我要转到页面对象htmldivelement功能,不要单击该按钮。我的命令在IE10上运行,但在IE11上不起作用。

Set hIE = CreateObject("InternetExplorer.Application")   
hURL = "http://mukerremalikayanilkokulu.meb.k12.tr/icerikler/eglen-dusun-bul_6506730.html"

With hIE
    .Navigate hURL
    .Visible = True

    Do While hIE.Busy
    Loop
End With

Set haberss = hIE.document.getElementsByClassName("begen")
For Each haberbb In haberss
    If haberbb = "begen" Then
        Do While hIE.Busy
        Loop
        haberbb.Click
        Set hIE = hIE.Quit
        Exit For
    Else
        Do While hIE.Busy
        Loop
        haberbb.Click
        Set hIE = hIE.Quit
        Exit For
    End If

haberbb按钮在IE10上可用,但在IE11上不起作用。

2 个答案:

答案 0 :(得分:1)

我不知道该功能是否有效或是否需要某种形式的登录。我无法手动点击喜欢。

这里有3种编码方式:

Ie.document.querySelector(".begen").click

Ie.document.querySelector(".begen").FireEvent "OnClick"

Ie.document.parentWindow.execScript "document.querySelector('.begen').click;"

Option Explicit
Public Sub AttemptClick()
    Dim ie As New InternetExplorer
    With ie
        .Visible = True
        .Navigate2 "http://mukerremalikayanilkokulu.meb.k12.tr/icerikler/eglen-dusun-bul_6506730.html"
        While .Busy Or .readyState < 4: DoEvents: Wend
        .document.querySelector(".begen").FireEvent "onclick"
        .document.querySelector(".begen").Click
        .document.parentWindow.execScript "document.querySelector('.begen').click();"
        Stop
        .Quit
    End With
End Sub

答案 1 :(得分:0)

除了QHarr的答案,您的Do While...Loop也不正确。

  1. 您应该在循环中执行某些操作,否则您将增加CPU使用率。您应该至少在两者之间添加DoEvents,以允许Windows处理其他程序/消息。
  2. 您似乎在等待页面加载完成。尝试将Or ReadyState < READYSTATE_COMPLETE添加到循环条件中。

将其放在一起,循环应类似于:

Do While IE.Busy Or IE.ReadyState < READYSTATE_COMPLETE ' = 4
    DoEvents
Loop

以下其他一些参考可能会有所帮助:

Failproof Wait for IE to load

How to wait for the page to load after click