2017-01-14 12 views
1

親愛なるstackoverflowers、VBAスクレイピングコードでタグやクラスが認識されない

私はVBAに新しく、パスワードで保護されたウェブサイトからデータを取得しようとしています。 ユーザー名とパスワードを入力して[送信]ボタンをクリックすると正常に動作します。その後、別のページが開き、いくつかの 'ボタン'をクリックする必要がありますが、なぜ動作しないのかわかりません。 次のアイコンをクリックしてみてください。

<td class="menuitem"> <a title="Klik hier voor de dienst Kadaster-on-line" class="navig" onmouseover="return s_('Kadaster-on-line')" onmouseout="return s_()" href="https://kadaster-on-line.kadaster.nl/default.asp" target="_parent">Kadaster-on-line</a> 

コードの最初の部分は、これまで

Dim IE As New SHDocVw.InternetExplorer 
Dim HTMLDoc As MSHTML.HTMLDocument 
Dim HTMLInput As MSHTML.IHTMLElement 
Dim HTMLButtons As MSHTML.IHTMLElementCollection 
Dim HTMLButton As MSHTML.IHTMLElement 
Dim HTMLAs As MSHTML.IHTMLElementCollection 
Dim HTMLA As MSHTML.IHTMLElement 

IE.Visible = True 
IE.navigate "https://mijn.kadaster.nl/security/login.jsp" 
Do While IE.Busy = True Or IE.ReadyState <> 4: DoEvents: Loop 

Set HTMLDoc = IE.Document 

Set HTMLInput = HTMLDoc.getElementById("gebruikerscode") 
    HTMLInput.Value = "username" 
IE.Document.forms("myform").elements("wachtwoord").Value = "password" 
    IE.Document.forms("myform").elements("inloggen").Click 

Do While IE.Busy = True Or IE.ReadyState <> 4: DoEvents: Loop 

動作しますが、第二部では動作しません。最初のコードは、私も

の「メニューアイテムを」クラス名とコードを試してみました タグ名「TD」を認識しないようにそれはそう私はのgetElementsByClassNameでそれを把握しようとしましたが、私はそれがタグ名

Set HTMLAs = HTMLDoc.getElementsByTagName("td") 
    'For Each HTMLA In HTMLAs 
     Debug.Print HTMLAs.Length 
    'Next 

で作業する必要がありますね

誰でもお手伝いできますか?

種類は、あなたが新しいページをロードした後

Set HTMLDoc = IE.Document 

を再実行する必要があり

答えて

2

について。さもなければ、HTMLDocは以前のページを指しています(利用できなくなりました...)

関連する問題