Zugriff auf IE-tabs einmal erstellt
Mittels VBA Erzeuge ich ein InternetExplorer-Objekt mit 3 verschiedenen tabs mit den folgenden
Option Explicit
Public Enum IE_READYSTATE
Uninitialised = 0
Loading = 1
Loaded = 2
Interactive = 3
complete = 4
End Enum
Sub Example_Click()
Dim ieApp As clsIE
'Create IE and login
If ieApp Is Nothing Then
Set ieApp = New clsIE
With ieApp
'IE Tab1
.IE.Visible = True
.IE.navigate "http://www.bbc.co.uk/news/"
Do While .IE.Busy Or Not .IE.readyState = IE_READYSTATE.complete: DoEvents: Loop
'IE Tab2
.IE.Navigate2 "http://www.bbc.co.uk", CLng(2048)
Do While .IE.Busy Or Not .IE.readyState = IE_READYSTATE.complete: DoEvents: Loop
'IE Tab3
.IE.Navigate2 "http://www.bbc.co.uk", CLng(2048)
Do While .IE.Busy Or Not .IE.readyState = IE_READYSTATE.complete: DoEvents: Loop
End With
End If
End Sub
Wie kann ich dann auf diese Tabletten......
- Beenden/Schließen einer bestimmten Registerkarte?
- Navigieren zu einer neuen URL auf eine bestimmte Registerkarte?
- Zugriff auf eine bestimmte Registerkarte DOM?
Ich weiß, wie all dies zu tun mit einem einzelnen Register, aber nicht mehrere tabs?
InformationsquelleAutor user3357963 | 2013-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich eine Antwort gefunden, die zu funktionieren scheint, obwohl ich nicht getan habe, strenge Tests. Ich habe es modifiziert Ihren code so, dass ich es ohne Ihre clsIE Modul. Dieser code navigiert die Registerkarten, um die 3 urls, wenn Sie diese öffnen und dann navigiert Sie zu neuen urls über die shellwindows-Objekt.
Änderte ich das tun, während .damit beschäftigt.. Zeilen wie Sie funktionieren nicht für die 2. und 3. Registerkarten, die den Zustand des IE applecation bereit war, während die neuen tabs waren noch geladen.
Es nutzt die ShellWindows-zum Bearbeiten der Registerkarten. Dies geschieht nur durch die Anzahl, so dass ich vermute, es könnte anfällig für Fehler.
Machen es robuster ist möchten Sie vielleicht einige Informationen aus dem Register nach einer operation und überprüfen Sie, dass der Wert ist der gleiche bei der Rückkehr, um es. Zum Beispiel
sPageTitle = SWs.Item(IETab3Number - 1).Document.Title
könnte verwendet werden, um speichern Sie den Titel der Seite in einem tab, wenn Sie das nächste mal verwenden möchten, die Registerkarte können Sie überprüfen, dass es sich nicht geändert hat.InformationsquelleAutor Graham Anderson
Einfache Lösung ist, einfach neu zuweisen, der neue tab, um das Objekt
InformationsquelleAutor Neechalkaran
Ist hier, wie ich gelöst, das problem der Gruppierung von tabs in einem IE-Fenster mit VBScript. Wenn die Funktion feststellt, IE-Fenster mit einer Registerkarte, deren URL beginnt mit
tabGroupS
(z.B. "http://stackoverflow.com") fügt eine neue Registerkarte in diesem Fenster und gibt diese Registerkarte, andernfalls es öffnet sich ein neues Fenster.InformationsquelleAutor Winand
Versuchen, diesen code:
InformationsquelleAutor Raulsoul