Как нажать на нужную ссылку, когда есть две разные ссылки с одинаковым TagName и InnerText с использованием Excel VBA - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь заставить код в моем модуле VBA щелкнуть конкретную ссылку на веб-странице, но есть две разные ссылки с одним и тем же именем («Изменить»), и я не могу нажать на нужную ссылку выбрать (второй из двух).

Имея код, который у меня есть в настоящее время, я могу получить доступ к первой ссылке «Изменить», но вместо этого мне нужно получить доступ ко второй ссылке «Редактировать».

Вот что у меня сейчас есть:

   Set AllHyperLinks = IE.document.getElementsByTagName("a")

        For Each hyper_link In AllHyperLinks

            If hyper_link.innerText = "Edit" Then
                hyper_link.Click
                Exit For

            End If
        Next

Ссылки отображаются в источнике страницы следующим образом:

Первая ссылка "Изменить"

<a href="javascript:__doPostBack('ctl04$ctl00$ctl00$esbasegrid_$ctl02$ctl00','')">Edit</a>

Вторая ссылка «Изменить» (, которую я хочу нажать )

<a href="javascript:__doPostBack('ctl04$ctl00$ctl01$esbasegrid_$ctl02$ctl00','')">Edit</a>

Как я указал выше, я хотел бы получить возможность нажать на вторую ссылку «Изменить», но вместо этого мой код нажимает на первую.

Относительно новичок в VBA, поэтому любая помощь здесь будет принята с благодарностью!

1 Ответ

0 голосов
/ 01 мая 2019

Вы можете сделать что-то вроде этого:

    Dim i As Long
    Set AllHyperLinks = IE.document.getElementsByTagName("a")

    For Each hyper_link In AllHyperLinks
       Debug.Print "Link", hyper_link.innerText
       If hyper_link.innerText = "Edit" Then
            i = i + 1
            Debug.Print , "Edit Link #" & i
            If i = 2 Then
                Debug.Print , "Clicking...!"
                hyper_link.Click
                Exit For
            End If
        End If
    Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...