Я пытаюсь получить доступ к веб-сайту на IE, используя VBA, чтобы получить отчет о транзакциях за предыдущие недели. Я смог войти и перейти на страницу отчета. Однако, когда я пытаюсь щелкнуть ссылку для расширенного поиска, я получаю сообщение об ошибке «Требуется объект»
Ниже указан HTML, который я выделил как принадлежащий ссылке:
<!-- Form Actions -->
<input type="button" id="searchtTxn" value="Search"
class="align-right margin-top"
style="float: right; font-size: 11px; margin-top: 5px;">
**<div id="secondary-button"
style="border: none; background: none; height: 26px; font-size: 11px; float: right;">
<a href="javascript:void(0);" id="moreOptions" class="mouseover"><strong>More
Options</strong>**
</a>
</div>
В частности, я пытаюсь выбрать пункт «moreOptions». Я также попытался выбрать на основе класса "mouseover" без удачи. Я также попытался создать сохраненный отчет, который я мог бы просто щелкнуть на основе класса и идентификатора. HTML для этого поиска ниже:
<div class="div-scroll portletContentJS"
style="height:145px !important;" id="savedSearchPortlet"
style="overflow-y: auto;">
<div class="savedsearch-record">
<table style="width:100%;" class='draggable' >
<tr>
<td class="wrap-savedsearch-report">
<div class="constrained">
<a href="javascript:void(0);" class="searchtResultTxn hasTooltip"
id="164035" style="text-decoration: underline;font-size:11px; padding-left: 2px;">Prev Week ACH </a>
<div class="hidden">
<!-- This class should hide the element, change it if needed -->
<table>
<tr>
<td style='word-wrap:break-word;word-break:break-all;max-width:150px;min-width:50px;'>Prev Week ACH</td>
</tr>
</table>
</div>
Я использую приведенный ниже VBA для доступа к веб-сайту и перейдите на страницу мне нужно. Ошибки кода при попытке вытащить элемент «moreOptions». Я добавил 20-секундное время ожидания на странице, которое не работает, если ссылка еще не была доступна, но безрезультатно. Я поднялся до 1 минуты безрезультатно.
Sub login1()
Dim IE As Object
Dim HTMLDoc As Object
Dim objCollection As Object
Dim allHREFs As New Collection
Const navOpenInNewTab = &H800
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "https://www.treasury.pncbank.com/idp/esec/login.ht"
Do While IE.Busy Or IE.readyState <> 4: Loop
Set HTMLDoc = IE.Document
With HTMLDoc
HTMLDoc.getElementById("txtUserID").value = "XXXX"
HTMLDoc.getElementById("txtOperID").value = "XXXXXX"
HTMLDoc.getElementById("txtPwd").value = "XXXXXX"
End With
Set objCollection = IE.Document.getElementById("loginFormButton")
objCollection.Click
Do While IE.Busy Or IE.readyState <> 4: Loop
Application.Wait (Now + TimeValue("0:00:10"))
Set objCollection = IE.Document.getElementById("IR")
objCollection.Click
Application.Wait (Now + TimeValue("0:01:00"))
Set objCollection = IE.Document.getElementById("moreOptions")
objCollection.Click
Do While IE.Busy Or IE.readyState <> 4: Loop
End Sub
Любая помощь здесь будет принята с благодарностью. Пожалуйста, дайте мне знать, если вам нужны дополнительные детали. Поскольку это банковский веб-сайт, я не смогу предоставить учетные данные для входа, но сообщите мне, если вам потребуется больше кода HTML.
РЕДАКТИРОВАТЬ, чтобы добавить полную страницу HTML