Найдите ссылку и нажмите на нее - PullRequest
0 голосов
/ 18 апреля 2019

Мне удалось заставить его работать с SendKeys. Однако это не лучшее решение для навигации по веб-странице с помощью SendKeys. Я пытался заставить этот код работать безуспешно. Он открывает веб-страницу и ничего не происходит.

Класс связи: class="a_1_610"

Текст ссылки: Dashboard

Из исходного кода:

<tr>
    <td class="nowrap"><span class="h_1_610" style="display: none;">Dashboard</span>
      <a href="DA3192.html" class="a_1_610" >
      Dashboard</a>

    </td>
  </tr>

DA3192.html постоянно меняется. В следующий раз, когда вы перейдете на веб-страницу, это будет DA3672.html или что-то еще.

Проблема в том, что все ссылки имеют class="a_1_610". Поэтому я попытался поймать его по тексту ссылки, но, похоже, он не работает (ничего не происходит). Сайт не доступен для публичного использования, только для личного пользования, поэтому нет возможности поделиться им. Есть ли другие способы заставить его работать, кроме SendKeys?

Sub GoToWebsiteTest()
Dim appIE As InternetExplorerMedium
'Set appIE = Nothing
Dim objElement As Object
Dim objCollection As Object

Set appIE = New InternetExplorerMedium
sURL = "http://mysite/"
With appIE
    .Navigate sURL
    .Visible = True
End With

Do While appIE.Busy Or appIE.ReadyState <> 4
    DoEvents
Loop

    Set objCollection = appIE.Document.getElementsByTagName("a")

    For Each hyper_link In objCollection
    If hyper_link.innerText = "Dashboard" Then
    hyper_link.Click
    Exit For

    End If
    Next

Set appIE = Nothing
End Sub

1 Ответ

1 голос
/ 18 апреля 2019

Вы можете попытаться проверить, имеет ли innertext значение "bug" и иметь пустые символы, использовать LIKE и подстановочный знак.

   For Each hyper_link In objCollection
         If vba.Lcase(hyper_link.innerText) like "*dashboard*" Then
                 hyper_link.Click
                 Exit For
         end if 

Скажите, работает ли он!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...