Board logo

標題: [發問] 已找到網頁中物件位置,卻無法click連結 [打印本頁]

作者: SorryChen    時間: 2012-5-17 14:50     標題: 已找到網頁中物件位置,卻無法click連結

本帖最後由 SorryChen 於 2012-5-17 14:52 編輯

如題,小弟嘗試編寫VBA以便自動抓取網頁上之表格。網頁之部分原始碼如下:

  1.         <tr>         
  2.                 <td HEIGHT="23" colspan="7">
  3.                         <table border=0 height="15">
  4.                                 <tr>        
  5.                                         <td HEIGHT="15" class="query" align="left"><p align="left">查詢個人資訊:</td>        
  6.                                         <td HEIGHT="15" ID="menu31" class="menu3"><a href="../PI80/PI800CICX.asp" target="_top">個人資料</a></td>
  7. <!--                                <td HEIGHT="15" ID="menu31" class="menu3"><a href="http://******" target="_top">個人資料</a></td>-->
  8.                                         <td HEIGHT="15" ID="menu32" class="menu3"><a href="../RE80/RE800CICX.asp" target="_top">******</a></td>      
  9. <!--                                        <td HEIGHT="15" ID="menu32" class="menu3"><a href="******?value=13" target="_top">*******</a></td>  -->
  10.                                         <td HEIGHT="15" ID="menu33" class="menu3"><a href="EI80Page1.asp" target="_top">薪給資料</a></td>      
  11. <!--                                        <td HEIGHT="15" ID="menu33" class="menu3"><a href="http://******?value=14" target="_top">薪給資料</a></td>  -->
  12.      
  13.                                         <td HEIGHT="15" ID="menu34" class="menu3"><a href="EI0250.asp" target="_top">******</a></td>      
  14. <!--                                        <td HEIGHT="15" ID="menu34" class="menu3"><a href="*****?value=17" target="_top">*****</a></td> -->

  15. <!--                                        <td HEIGHT="15" ID="menu35" class="menu3"><a href="EI0850Page1.asp" target="_top">密碼變更</a></td> -->     
  16.                                         <td HEIGHT="15" ID="menu36" class="menu3"><a href="../LT/LT7030.asp" target="bottom">假單查詢</a></td>
  17. <!--                                        <td HEIGHT="15" ID="menu35" class="menu3"><a HREF="../LT/LT1010_readsupp.asp?source=3&offclass=25&offIDName=455079&Sdate=101/5/17" target="bottom">補休時數查詢</a></td>-->
  18.                                         <td HEIGHT="15" ID="menu35" class="menu3"><a HREF="../LT/LT0200dir.asp?source=qrysupp" target="bottom">補休時數查詢</a></td>
  19.                                 </tr>     
  20.                         </table>     
  21.                 </td>
  22.         </tr>
複製代碼
[attach]10989[/attach]

因該網頁為公司網頁必須在公司網域內並須帳號密碼才能登入,恕無法提供完整網址。
敝人由編輯器中的區域變數窗格找到欲點選的連結的物件(假單查詢)位置:
myIE3.document.frames(0)-->document-->all-->Item(76)
想利用程式碼尋找該物件卻會出現錯誤訊息:
執行階段錯誤'438' 物件不支援此屬性或方法
程式碼片段如下:
  1. Dim myIE1 As InternetExplorer, myIE2 As InternetExplorer, myIE3 As InternetExplorer 'IE物件
  2. Dim myIEdoc1 As HTMLDocument, myIEdoc2 As HTMLDocument, myIEdoc3 As HTMLDocument '網頁物件
  3. Dim theForm As HTMLFormElement, theItm As HTMLFormElement '網頁表單物件
  4. Dim element As HTMLElementCollection '網頁物件集合
  5. Dim ItmType As String
  6. Dim theFrame As HTMLFrameElement
  7. Dim LinkHref As String
  8. Dim a, b, c, d, e, f, g

  9.     Set myIE3 = CreateObject("InternetExplorer.Application")
  10.         With myIE3
  11.             .Visible = True
  12.             .navigate "myURL"
  13.             Do Until .readyState = 4
  14.                 DoEvents
  15.             Loop
  16.         End With

  17.     Set myIEdoc3 = myIE3.document
  18.     Set theFrame = myIEdoc3.frames(0)
  19.     Set d = theFrame.document.all.Item(75)
  20. '    d.Click
複製代碼
因網頁會檢查一定要由此網頁點擊連結,否則會跳回首頁,
所以也無法新開啟一個IE物件navigate連結的網址,一定要用點擊方式。

請教各位先進前輩有無任何方法解決,
您的回答都對我有很大的幫助,謝謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)