Соскоб в Интернете по тексту ссылки - PullRequest
0 голосов
/ 15 мая 2019

У меня есть некоторый опыт и знания, как записывать по tagName или ClassName. Однако в данном конкретном случае className не является уникальным, и ссылка постоянно меняется после доступа к странице, поэтому прямую ссылку получить невозможно. Единственная уникальная комбинация - это класс и текст ссылки. Какой будет код для доступа, например, Budget and Forecast updating с a_1_610 и Budget and Forecast updating с a_1_611?

Мой код (отредактированный в соответствии с ответом QHarr):

Sub GoToLiinosBot()

'This will load a webpage in IE
Dim ie As InternetExplorer
Dim HWNDSrc As Long
Dim elements As Object

Set ie = Nothing
Set ie = New InternetExplorerMedium

ie.Visible = True

ie.Navigate "http://link.com"

With ie

Do
DoEvents
Loop Until ie.ReadyState = READYSTATE_COMPLETE
End With

    Application.Wait (Now + TimeValue("0:00:04"))

    ie.Document.querySelector(".data .a_1_611").innerText

'Unload IE
Set ie = Nothing
End Sub

Вот исходный код:

enter image description here

1 Ответ

1 голос
/ 15 мая 2019

Это имена классов, а не идентификаторы.Возможно, необходим цикл с проверкой значения innerText узла, если упорядочивается изменение, но в противном случае вы хотите первое совпадение для примера, показанного на изображении

.data .a_1_611

, который равен

ie.document.querySelector(".data .a_1_611").click

nth-of-type полезно для выбора фиксированной позиции, но дороже, чем селекторы класса.

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