"POPUP" vom IE nicht erreichbar

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von AMI.

    "POPUP" vom IE nicht erreichbar

    Hallo Leute,

    habe ein Problem bei dem ich einfach nicht weiterkomme und hoffe ihr könnt mir ein bischen weiterhelfen.
    Möchte noch erwähnen das ich VB 2008 Anfänger bin.

    Die Idee des Programms ist, das es sich automatisch auf einer Website einlogt und ich dann
    diverse Informationen aus dieser Webseite auslesen kann. Das mache ich über den IE mit folgendem Code:


    Public Class Form1
    Dim IE As Object

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim test As String = "test"
    Dim test1 As String = "test1"
    Dim test2 As Long = "test2"
    'Dim domain As String

    IE = CreateObject("InternetExplorer.Application")

    IE.Visible = True
    IE.Navigate("http:// gewünschte URL")
    Call busy()
    IE.Document.GetElementById("sld").Innertext = test
    IE.Document.GetElementById("account").Innertext = test1
    IE.Document.GetElementById("pwd").Innertext = test2
    IE.Document.getElementById("_weiter").click()
    Call busy()

    End Sub

    Sub busy()
    Do While IE.ReadyState <> WebBrowserReadyState.Complete
    Application.DoEvents()
    Loop
    End Sub


    So, mein Problem ist nun, das nach dem Click ein weiteres IE Fenster geöffnet wird und ich an dieses nicht "ran" komme um den Quelltext auszulesen.

    Kann die Adresse auch nicht ohne weiteres einfach in meinem ursprünglichen IE annavigieren, da sich diese bei jedem Login ändert und die sid nur in dem IE popup steht (an das ich nicht hin komme :( )

    Habe mich auch schon durch das Forum gewühlt aber leider nichts gefunden was ich verwenden könnte.

    Wäre echt super wenn mir jemand sagen könnte wie ich das zweite IE Fenster ansprechen kann.

    Danke schon mal

    Gruss
    Ami

    PS: ein allgemeines Lob ans Forum, sind echt super Beiträge.
    Nein ich will darauf hinaus, dass man für normale Zwecke das Webbrowser Control aus der Toolbox benutzt, ausser man hat besondere Gründe auf das COM Objekt zuzugreifen. Gerade wenn Du Anfänger bist, sollte das für Dich einfacher sein und auch vollkommen ausreichen.
    achso, is aus meiner VBA Zeit, da bin ich immer direkt in den IE gegangen um diesen zu laden bzw. fernzusteuern.

    Habs auch schon mit dem Webbrowser versucht, hier jedoch das gleiche Problem, das POPUP wird dann im IE geöffnet.
    Hab diesbezüglich das Forum hier schon durchkämmt und auch viele Lösungsansätze gefunden.
    Haben aber leider nicht funktioniert.
    Es gibt viele Möglichkeiten sich auf Seiten automatisch einzuloggen und Werte auszulesen, u.a. mit httpRequest, webClient und WebBrowser Control.Normalerweise ziehe ich den httpRequest vor, genügend Beispiele gibt es hier im Forum. Vorteil ist zumindest dass man nur die Rohdaten der Seiten ohne Bilder , Javascript etc bekommt.

    Ohne die Seite genau zu kennen ist es immer schwierig zu sagen was nun die beste Möglichkeit ist. Wenn Du mit dem WebBrowser arbeiten möchtest, würde ich immer noch das WebBrowser Control nehmen: Du kannst ja z.B. das Erzeugen einer neuen Seite im NewWindow-Event unterdrücken und manuell die neue Adresse mit Navigate ansteuern nachdem Du eingeloggt bist.

    Natürlich geht es auch mit dem COM Objekt: Grober Skizze:
    1. Referenz auf das COM Objekt einbinden Microsoft.Internet Controls
    2. IE als SHDocVw.InternetExplorer definieren
    3. die Collection aller momentan geöffneten IE Fenster erhältst Du mit Dim SWs As New SHDocVw.ShellWindows

    Wenn Du nach SHDocVw.ShellWindows suchst, erhälst Du auch hier im Forum genügend Hinweise.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()

    jup, bei dem newwindow event war ich auch schon, hab ich hier im forum gefunden.

    Sub WebBrowser1_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles WebBrowser1.NewWindow
    Dim neueurl As String = WebBrowser1.StatusText
    e.Cancel = True 'bricht das starten des IE ab
    WebBrowser2.Navigate(neueurl)
    End Sub

    als neueurl wird mir immer "Fertig" zurück geliefert. Liegt wohl an dem Webbrowser2.StatusText.
    Das Popup wird nach drücken des Login-Buttons per Script geöffnet.
    Wenn ich das Starten mit e.Cancel abbreche und manuell zu der zu öffnenden Seite navigiere komm ich wieder auf das anmeldebild.
    Jo, das es schwierig ist ohne die Seite zu kennen ist klar, kann dir aber schlecht meine Login-Daten geben und nur wenn du eingelogt bist kannst die Seite sehen.

    Kann ich das IE Popup evtl über das hwnd ansprechen und mir den Quelltext ziehen?
    Das hwnd kann ich auslesen, aber leider nicht ansprechen.
    Hab auch schon einige Ebooks durchgewälzt aber da steht sowas leider nicht drin.

    auch der httpReqest ist scheinbar nicht möglich aufgrund des popups und des scripts hab ich auch schon versucht. bin echt ratlos ?(

    PS: Danke Kangaroo für deine Mühe.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „AMI“ ()

    hey kangaroo,

    du bist ein genie :thumbsup:

    mit SHDocVw.ShellWindows hats geklappt, konnte das Fenster ansprechen, den Quelltext "ziehen"
    und zu meiner entsprechenden Seite navigieren.

    Vielen Vielen Dank für deine Hilfe.
    :)

    Gruss Ami

    PS: Gibts irgendwo Online ne Art Auflistung wofür z.B.
    Microsoft.Internet Controls gut ist, wo man bei Bedarf nachsehen kann was man braucht?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „AMI“ ()