У меня проблема с циклом через элементы div, ну, я не знаю, как это сделать. Код в значительной степени работает.Цикл через элементы DIV с использованием VBA
По существу у меня есть доступ к веб-сайту и вы хотите скачать его с помощью этой ссылки. Мой код выглядит и находит элемент X и продолжает нажимать на этот элемент.
Проблема заключается в том, что элемент X повторяется много раз, так что .getElementByClassName ("AssetLinkText") повторяется пару раз в HTML-коде, в результате чего получается загрузка первого «AssetLinkText».
Я думал, что душевное мышление будет состоять в том, чтобы искать через HTML i.e для каждого цикла и искать тег с внутренним текстом «Загрузить полный список ценных бумаг». Однако я не уверен, как это сделать.
Sub anotherAttempt()
'DECLARE VARIABLES
Dim browser As InternetExplorer
Dim document As HTMLDocument
Set browser = New InternetExplorer
Dim div
'MAKE VIS AND NAV
browser.Visible = True
browser.Navigate "https://etf.deutscheam.com/GBR/ENG/ETF/LU1221100792/-/DAX-UCITS-ETF-(DR)-Income"
'MULTITHREAD
Do While browser.Busy And Not browser.readyState = READYSTATE_COMPLETE
DoEvents
Loop
'PERFORM ACTIONS
Set document = browser.document
Dim anchorElement As HTMLAnchorElement
Set anchorElement = document.getElementsByClassName("AssetLinkText")
'CHECK FOR HOLDINGS LINK
anchorElement.Click
End Sub
и vb.net УВА не то же самое, то эта функция [кажется, не существует] (https://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument (v = vs.110) .aspx) в vb.net. Я не вижу никакого javascript. –
'Set anchorElement = document.getElementsByClassName (" ... ")' дает вам список элементов, что означает, что 'anchorElement.Click' никогда не сможет работать. Вы не можете щелкнуть список элементов. Ваш вопрос неясно, чего вы хотите достичь. – Tomalak
Посмотрите на return для getElementsByClassName, он вернет коллекцию, а затем примените ее для создания цикла. Файлы справки и Интернет в Microsoft Internet Controls являются отличным источником информации. –