2016-08-15 4 views
1

IE自動化プログラムを変更しています 既存のvb6プログラムからHTMLページのclicked html要素を取得しようとしています。vb6から管理されたブラウザ(ブラウザ)からhtmlelementを取得できません。

私は、「アクション」ドロップダウンメニューをクリックし、メニュー項目をクリックしていた場合

Example Htmlpage

下の画像のようにボタンダウンメニュー次のドロップを除くすべての要素を取得することができています「Excelにエクスポート」または任意の他のメニューdoc.activeelement.innertextは、「アクション」の代わりに「Excelへのエクスポート」

それを返しているここに私のVBコードは

Public WithEvents IE As InternetExplorer 
Private WithEvents doc As HTMLDocument 
Private Function Doc_onclick() As Boolean 
    me.grid1.cell(1,j)=doc.activeelement.tagname & "::" doc.activeelement.innertext 
    Doc_onclick = True 
End Function 
0123です

は、ここで私はまた、フレームを試みたが成功しなかったと述べたページのドロップダウンメニュー

<div id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:j_id12" class="x6e" style="overflow: hidden; width: 167px;"> 
 
    <div class="xde"> 
 
    <div id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:j_id12::oc" class="af_menuBar_content"> 
 
     <table border="0" cellpadding="0" cellspacing="0" summary=""> 
 
     <tr> 
 
      <td class="x19v"> 
 
      <a style="display: none;"></a> 
 
      <div id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm" _afrdth="1" _afrgrp="0" class="xg2 xkj"> 
 
       <div class="x1b7" tabindex="0"> 
 
       <table border="0" cellpadding="0" cellspacing="0" summary=""> 
 
        <tr> 
 
        <td></td> 
 
        <td class="x19w"> 
 
         <a class="xfn" href="#" onclick="return false" tabindex="-1"> 
 
\t \t \t \t \t \t \t \t \t Actions</a> 
 
        </td> 
 
        <td> 
 
         <div class="xg3"> 
 
         </div> 
 
        </td> 
 
        </tr> 
 
       </table> 
 
       </div> 
 
       <table id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm::menu" border="0" cellpadding="0" cellspacing="0" class="x1a7" style="display: none;" summary=""> 
 
       <tr> 
 
        <td id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm::sUpBg" class="x26x p_AFDisabled"> 
 
        <div id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm::ScrollUp" class="x1a8 p_AFDisabled" style="display: none"> 
 
         <span class="x1aa"></span> 
 
        </div> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td> 
 
        <div id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm::ScrollBox" class="x1ba"> 
 
         <table id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm::ScrollContent" border="0" cellpadding="0" cellspacing="0" class="af_menu_scroll-content" summary="" width="100%"> 
 
         <tr id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:editMenuItem" _afrdth="2" _afrgrp="0" class="x1a2 x1ab p_AFDisabled" onclick="return false;"> 
 
          <td class="x1ae"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
          <td class="x1af">Edit Supplier</td> 
 
          <td class="x1ag"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
          <td class="x1ah"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
         </tr> 
 
         <tr class="x1ay"> 
 
          <td class="x1aa"> 
 
          <div class="x1az"> 
 
          </div> 
 
          </td> 
 
          <td colspan="3"> 
 
          <div class="x1b0"> 
 
          </div> 
 
          </td> 
 
         </tr> 
 
         <tr id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATexm" _afrdth="2" _afrgrp="1" class="x1a2 x1ab" onclick="return false;" tabindex="0" title="Export to Excel"> 
 
          <td class="x1ae"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
          <td class="x1af">Export to Excel</td> 
 
          <td class="x1ag"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
          <td class="x1ah"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
         </tr> 
 
         <tr class="x1ay"> 
 
          <td class="x1aa"> 
 
          <div class="x1az"> 
 
          </div> 
 
          </td> 
 
          <td colspan="3"> 
 
          <div class="x1b0"> 
 
          </div> 
 
          </td> 
 
         </tr> 
 
         <tr id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:cmi1" _afrdth="2" _afrgrp="2" class="x1a2 x1ab p_AFDisabled" onclick="return false;"> 
 
          <td class="x1ae"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
          <td class="x1af">View Administrative Contacts</td> 
 
          <td class="x1ag"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
          <td class="x1ah"> 
 
          <div class="x1bb"> 
 
          </div> 
 
          </td> 
 
         </tr> 
 
         </table> 
 
        </div> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm::sDwnBg" class="x26y"> 
 
        <div id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:ATm::ScrollDown" class="x1a9" style="display: none"> 
 
         <span class="x1aa"></span> 
 
        </div> 
 
        </td> 
 
       </tr> 
 
       </table> 
 
      </div> 
 
      </td> 
 
      <td class="x19v">&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:_vw::sDwnBg" class="x26y"> 
 
      <div id="pt1:USma:0:MAt1:0:pt1:r1:0:AP1:r8:0:AT1:_ATp:_vw::ScrollDown" class="x1a9" style="display: none"> 
 
       <span class="x1aa"></span> 
 
      </div> 
 
      </td> 
 
     </tr> 
 
     </table> 
 
    </div> 
 
    </div>

をレンダリングするHTMLコードの該当部分です。

管理されたIEブラウザでクリックした要素をキャプチャするのに助けてくれますか?

私たちのページではないので、ページのHTMLコードを変更することはできません。

おかげでクリックした要素を取得する方法

答えて

0

:あなたは親要素の属性を取得したい場合

Dim oSrcEl As MSHTML.HTMLUnknownElement 
Set oSrcEl = doc.parentWindow.event.srcElement 

を、それが持っているので(多分あなたは、親TR要素を取得することになるでしょうid):

Dim oDomAttr As MSHTML.IHTMLDOMAttribute 
Set oDomAttr = Nothing 
Do 
    Set oDomAttr = oSrcEl.Attributes.getNamedItem("id") 'attribute what i'm searching for 
    Set oSrcEl = oSrcEl.parentElement 'parent element 
'either I have found element with id attribute 
'or I'm at the top without success 
Loop While oDomAttr Is Nothing And (Not oSrcEl Is Nothing) 
+0

ありがとうございます。今は完璧に動作しています。 – user1918906

関連する問題