Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba刮削嵌套(?)选项卡/按钮_Vba_Ms Access_Web Scraping - Fatal编程技术网

vba刮削嵌套(?)选项卡/按钮

vba刮削嵌套(?)选项卡/按钮,vba,ms-access,web-scraping,Vba,Ms Access,Web Scraping,我一直试图在工作中刮取一个内部网站,时间比我愿意承认的要长。这个程序是敏捷的(一种通用的制造工具),它使用IE,所以地址在导航时不会改变。我要选择的选项卡/按钮/菜单位于一个选项卡包装器内,我无法使用我的技能集访问它 我能钻到的最深处是 idoc.getElementById("rightPaneContent").getElementsByTagName("Form")(0) …但它没有显示DIV、LI或a的完整结果 我试图选择的菜单下拉菜单实际上是多

我一直试图在工作中刮取一个内部网站,时间比我愿意承认的要长。这个程序是敏捷的(一种通用的制造工具),它使用IE,所以地址在导航时不会改变。我要选择的选项卡/按钮/菜单位于一个选项卡包装器内,我无法使用我的技能集访问它

我能钻到的最深处是

idoc.getElementById("rightPaneContent").getElementsByTagName("Form")(0)
…但它没有显示DIV、LI或a的完整结果

我试图选择的菜单下拉菜单实际上是多余的,但是菜单栏使用了没有类或ID的HREF javascript,我也尝试在没有任何运气的情况下执行它,所以我将注意力转向了带有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
外面的TML大约有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>

我尝试了大量的编码变体。开火,点击,筑巢,聚焦等等,我就到了终点

敏捷屏幕捕获

尤里卡时刻

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

        Call iDoc.parentWindow.execScript(sJS)
尤里卡时刻

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

        Call iDoc.parentWindow.execScript(sJS)