Скраб-код vba не распознает теги или классы
Уважаемые стекировщики,
Я новичок в VBA, и я пытаюсь получить некоторые данные с защищенного паролем веб-сайта. Заполнение имени пользователя и пароля и нажатие на кнопку отправки работает нормально. Затем открывается другая страница, где мне нужно нажать на несколько "кнопок", но я не понимаю, почему это не работает. Я пытаюсь нажать на следующую иконку.
<td class="menuitem"> <a title="Klik hier voor de dienst Kadaster-on-line" class="navig" onmouseover="return s_('Kadaster-on-line')" onmouseout="return s_()" href="https://kadaster-on-line.kadaster.nl/default.asp" target="_parent">Kadaster-on-line</a>
первая часть кода работает до сих пор
Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLInput As MSHTML.IHTMLElement
Dim HTMLButtons As MSHTML.IHTMLElementCollection
Dim HTMLButton As MSHTML.IHTMLElement
Dim HTMLAs As MSHTML.IHTMLElementCollection
Dim HTMLA As MSHTML.IHTMLElement
IE.Visible = True
IE.navigate "https://mijn.kadaster.nl/security/login.jsp"
Do While IE.Busy = True Or IE.ReadyState <> 4: DoEvents: Loop
Set HTMLDoc = IE.Document
Set HTMLInput = HTMLDoc.getElementById("gebruikerscode")
HTMLInput.Value = "username"
IE.Document.forms("myform").elements("wachtwoord").Value = "password"
IE.Document.forms("myform").elements("inloggen").Click
Do While IE.Busy = True Or IE.ReadyState <> 4: DoEvents: Loop
но вторая часть не работает. Сначала я попытался выяснить это по getelementsbyclassname, но я думаю, что это должно работать по тэгу
Set HTMLAs = HTMLDoc.getElementsByTagName("td")
'For Each HTMLA In HTMLAs
Debug.Print HTMLAs.Length
'Next
кажется, что код не распознает тэг "td", я также пробовал коды с именем класса "menuitem"
Кто-нибудь, пожалуйста, помогите мне?
С уважением
1 ответ
Вам необходимо повторно выполнить
Set HTMLDoc = IE.Document
после загрузки новой страницы. В противном случае HTMLDoc по-прежнему указывает на предыдущую страницу (которая больше не доступна...)