VBA щелкает по раскрывающейся ссылке в IE без имени / идентификатора - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь щелкнуть ссылку на веб-странице компании через VBA.Проблема в том, что у HTML нет имени или идентификатора.Я видел много разных сценариев на этом сайте, и я пробовал их, но я не могу щелкнуть эту ссылку.

Я не могу поделиться сайтом, потому что это сайт интрасети компании, но я поделюсьраздел HTML, и мои попытки кода.

Вот HTML.Следует знать, что ссылка доступна только при наведении курсора на меню.

 <li title="vendor" class="current"><a class="sf-with-ul" href="javascript:void(0);">Vendor A/P Inquiry<span class="sf-sub-indicator"> »</span></a>
  <ul style="width: 7.68em; float: none; display: none; visibility: hidden;">
   <li title="Vendor Invoice Inquiry Thru Browser" style="width: 100%; float: left; white-space: normal;"><a style="width: auto; float: none;" href="javascript:top.pageFrame.processSelection('VRJA');">Vendor A/P Inquiry</a></li>
  </ul>
</li>

Вот скриншот, на случай, если его проще читать таким образом ... HTML Screenshot

РЕДАКТИРОВАТЬ: Родительский элемент, который я бы наведите курсор мыши, чтобы отобразить нужную мне ссылку, это строка <li title="vendor" class="current">

Это несколько моих попытокпри нажатии на эту ссылку (которая выделена синим цветом на снимке экрана HTML)

Попытка 1:

 Dim link As Object
            Dim doc As Object

            Set doc = ieApp.document

            For Each link In doc.Links
            Debug.Print link.innerText
            If link.innerText = "Vendor A/P Inquiry" Then
            link.Click
            Exit For
            End If
            Next link

Попытка 2:

  Set ieAnchors = ieApp.document.anchors
                For Each Anchor In ieAnchors
                    If Anchor.href = "javascript:top.pageFrame.processSelection('VRJA');" Then
                        Anchor.Click
                        Exit For
                    End If
                Next Anchor

Попытка 3:

Set buttonclick = ieApp.document.getElementsByTagName("a")
For Each element In buttonclick
    If element.href = "javascript:top.pageFrame.processSelection('VRJA');" Then element.Click
Next element

Я могу нормально перемещаться по сайту, пока не попаду по этой ссылке.

Любая помощь будет принята с благодарностью, так как я чувствую, что иду кругами, пробуя одни и те же решения снова и снова.

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете попробовать

ie.document.querySelector("[title='Vendor Invoice Inquiry Thru Browser'][href='javascript:top.pageFrame.processSelection('VRJA');']").Click

Хотя может показаться, что вам сначала нужно щелкнуть родительский элемент, чтобы отобразить это?

Как вы упоминаете при наведении курсора, вам может понадобиться найти правильныйэлемент для применения FireEvent, например,

ie.document.querySelector("[title='Vendor']").FireEvent "onmouseover"
...