vba выскабливание вложенной (?) вкладки / кнопки - PullRequest
1 голос
/ 23 мая 2019

Я пытался очистить интранет-сайт на работе дольше, чем готов признать.Программа Agile (распространенный производственный инструмент), которая использует IE, поэтому адрес не меняется во время навигации.Вкладка / кнопка / меню, которые я хочу выбрать, находится внутри tab_wrapper, к которому я не могу добраться с моим набором навыков.

Самое дальнее, что я могу развернуть, это ...

idoc.getElementById("rightPaneContent").getElementsByTagName("Form")(0)

... но он не показывает полный результат для DIV, LI или A.

Раскрывающееся меню, которое я пытаюсь выбрать, на самом деле является избыточным, но строка меню использует JavaScript HREF без классаили ID, который я также попытался выполнить без особой удачи, поэтому я обратил свое внимание на выпадающее меню с идентификаторами.

Private Sub btnSearch_Click()

    Dim page, srch As String

    srch = Me.txtSearch
    page = "http://xxagile.xxxxxx.com/Agile/" & _
           "PLMServlet?module=LoginHandler&opcode=forwardToMainMenu#"

    Dim ie As InternetExplorer: Set ie = New InternetExplorerMedium

        With ie
        .Visible = True
        .Navigate page
        End With

        Do Until ie.ReadyState = 4: DoEvents: Loop

    Dim iDoc As HTMLDocument: Set iDoc = ie.Document

        With iDoc
        .getElementById("toggle_search_menu").Click        ' select menu
        .getElementById("cls_901").Click                   ' select ITEM from menu
        .getElementById("quicksearch_string").Value = srch ' enter string
        .getElementById("top_simpleSearch").Click          ' click search button
        End With

        Do Until ie.ReadyState = 4: DoEvents: Loop

    'iDoc.getElementById("rightMenuImg").Click ' error 91
    'iDoc.getElementById("rightScrollMenu").Click ' error 91

    With ie
    '.Stop
    '.Quit
    End With

    Set ie = Nothing: Set iDoc = Nothing

End Sub

externalHTML составляет около 1600+ строк, поэтому я сократил его до этого ...

<div id="rightpanecontent">

<form name="MainForm" method="POST" action="PCMServlet" enctype="application/x-www-form-urlencoded" onsubmit="return false;" target="_self">

<!--************************************
    TAB VIEW
*************************************-->
<div id="tabsview_wrapper">
<div id="tabsandcontrols"> <!-- wrapper for tabs, dms, and tab actions -->

    <!--************************************
        TABS
    *************************************-->
<div id="leftScroll" style="display: none; left: 129px; top: 174px;">
<div id="rightScroll" style="display: none; left: 528px; top: 174px;">
<img id="rightScrollImg" src="/Agile/static/6dbe07cad9d304865dea9dfd18d4cb59/images/icn_action_tabscroll_right_enabled.png" onmousedown="scrollButtonPressed(event, 'right')" onmouseup="hideShowScrollButtons()" oncontextmenu="return false" style="cursor: pointer;">
</div>

<div id="rightScrollMenu" style="display: block; left: 891px; top: 142px;">
<img id="rightMenuImg" src="/Agile/static/8913d52dc8a2aeaaa1ea83e36663943d/images/icn_action_tabmenu.png" onclick="showTabsMenu(this, '21', event)" ondblclick="showTabsMenu(this, '21', event)" style="cursor: pointer;">
</div>

Я попытался убить множество вариантов кодирования.Огонь, щелчок, вложение, фокусировка и т. Д., И я нахожусь на моем конце.

быстрый снимок экрана

1 Ответ

0 голосов
/ 29 мая 2019

Эврика Момент ...

    Dim sJS As String
    sJS = "javascript:displayObject" & _
           "('ItemHandler', '10000', '394341431', '12','', '0');"

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