Как нажать на одну и ту же ссылку на странице, один за другим с возвратом? - PullRequest
0 голосов
/ 12 октября 2019

Можете ли вы помочь мне в этом коде, у меня отказано в разрешении на ошибку, если условие во время второго цикла (я нажимаю на 1-й URL-адрес, он открывается, я возвращаюсь, и я хочу нажать на второй же URL-адрес вэта страница, но ошибка появляется). Большое спасибо за любую помощь.

Dim fourdoc As HTMLDocument
Set fourdoc = objIE.document

Dim t As Long, i As Long


Dim delement As MSHTML.HTMLInputElement
Dim delements As MSHTML.IHTMLElementCollection
Set delements = fourdoc.getElementsByTagName("a")

For Each delement In delements
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        ''''''''''''''''''''''''''''
    If delement.ClassName = "dialogUrl aImg" Then     '' error permission denied there second time loop for''
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        '''''''''''''''''''''''''''''
        delement.Click
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        '''''''''''''''''''''''''''''
        Set fourdoc = objIE.document
        '''
        'here do your stuff within the new url
        '''
        objIE.GoBack
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        '''''''''''''''''''''''''''''
        Set fourdoc = objIE.document
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        ''''''''''''''''''''''''''''
    End If
Next


End With

End Sub

1 Ответ

1 голос
/ 13 октября 2019
After 24h of reflexion, ive got the solution : 

Dim fourdoc Как установить HTMLDocument fourdoc = objIE.document

Dim i As Integer
Dim t As Integer

'Dim delement As MSHTML.IHTMLElement
Dim delements As Object
Set delements = fourdoc.getElementsByClassName("dialogUrl aImg")
t = delements.Length
Debug.Print t

For i = 0 To t - 1
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        ''''''''''''''''''''''''''''
        Set fourdoc = objIE.document
        Set delements = fourdoc.getElementsByClassName("dialogUrl aImg")
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        ''''''''''''''''''''''''''''
        delements(i).Click
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        ''''''''''''''''''''''''''''
        objIE.GoBack
        '''''''''''''''''''''''''''''
        Do While objIE.Busy Or objIE.readyState <> 4
        DoEvents
        Loop
        '''''''''''''''''''''''''''''
Next i

спасибо за помощь, ребята! Это работает. Увидимся

...