vba - IE Instanz/tab korrekt ansprechen
20.09.2013 14:08:21
pjong
ich habe mit meinem Code eine Internetseite geöffnet, auf der ich einen Link anklicke, welcher wiederum einen neuen Tab öffnet. Bis hier hin klappt alles. Dann möchte ich den quellcode dieses 2. tabs auslesen.
Das klappt jedoch nicht, da ich nicht weis, wie ich den 2 tab aktiviere bzw anspeche.
Er liest wohl den Quellcode des ersten Fensters.
Ich hab schon 2 Tage gegoogelt und stehe jetzt auf dem Schlauch und bitte euch um Hilfe.
Letztendlich wird das ganze eine Schleife, die die oben beschrieben Prozedur 1000 mal macht. Somit wäre es ideal wenn anfänglich 1 IE Fenster aufgeht, bei dem dieser 2. Tab, der geöffnet wird, nach jeder Abfrage entweder geschlossen oder durch das erneute Linkanklicken übnerschrieben wird.
Wie gesagt, ich weis nicht wie ich den 2. Tab, (dessen URL ich nicht kenne und die auch jedes mal etwas unterschiedlich ist) anspreche.
Hier meine code:
Sub Decision_matrix()
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://bla bla"
Do While ie.ReadyState 4
' Warten bis der IE die Site komplett geladen hat
Loop
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 3
waitTime = TimeSerial(newHour, newMinute, newSecond)
ie.Document.All.documentNumber.Value = "CFM56-5B 72-0803"
ie.Document.All.Search.Click
Do While ie.ReadyState 4
' Warten bis der IE die Site komplett geladen hat
Loop
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 5
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Do: Loop Until ie.Busy = False
Set AllhyperLinks = ie.Document.getElementsByTagName("a")
For Each hyper_link In AllhyperLinks
If InStr(1, hyper_link.innertext, "blub blub") Then
'MsgBox hyper_link
'ie.Quit
hyper_link.Click
Exit For
End If
Next
'
Function GetInternetWindow(urlToLookFor As String) As InternetExplorer
Application.Wait waitTime
Do: Loop Until ie.Busy = False
Quelltext = ie.Document.Body.InnerHtml
MsgBox (InStr(1, Quelltext, "tralala")) ' mit dieser MsgBox schaue ich, ob er das richtige _
Fenster erwicht( dann Ausgabe "1"), da im richtigen fenster tralala steht. Sonst "0"
MsgBox Quelltext ' unwichtig
End Sub
Danke sehr im Voraus!