Warten bis Seite fertig geladen wurde!

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von B0B, 25. Juli 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. Juli 2006
    Hallo, hab da n Problem in Visual Basic.

    Ich will mehrere Forms hintereinander ausfüllen lassen und dann submitten lassen => auf der darauffolgenden seite das gleiche!
    Jetzt hab ich das Problem, dass der Browser nicht weis, wann die nächste seite fertig ausgeladen wurde.
    wie kann ich das machen ?

    Auszug aus dem Code:

    Private Sub Form_Load()
    browser.Navigate "http://blabla.de/"
    End Sub

    Private Sub send_Click()
    browser.Document.Forms(0).first_name.Value = "Max"
    browser.Document.Forms(0).Name.Value = "Muster"
    browser.Document.Forms(0).birth_day.Value = "12"
    browser.Document.Forms(0).birth_month.Value = "12"
    browser.Document.Forms(0).birth_year.Value = "1980"
    browser.Document.Forms(0).elements(5).Checked = True
    browser.Document.Forms(0).street.Value = "Musterstr. 8"
    browser.Document.Forms(0).zip.Value = "12345"
    browser.Document.Forms(0).city.Value = "Musterstadt"
    browser.Document.Forms(0).country.selectedIndex = "5"
    browser.Document.Forms(0).email.Value = "muster@email.com"
    browser.Document.Forms(0).submit

    hier soll der browser warten,bis die Seite ausgefüllt wurde!

    browser.Document.Forms(0).pw.Value = "passwort"
    browser.Document.Forms(0).pww.Value = "passwort"
    browser.Document.Forms(0).submit

    .
    .
    .
    usw
    End Sub




    Ich hoffe ihr könnt mir helfen!
     
  2. 25. Juli 2006
    Sers, ich kenn mich zwar mit dem ausfüllen von webformularen nit aus aber wie wärs mit:

    do while browser.Document.Forms(0).email.Value <> "muster@email.com"
    DoEvents
    loop

    viel glück
     
  3. 25. Juli 2006
    kenn mich damit garnich aus , wo soll ich das einsetzen ?
    und was bewirkt das ?


    tut mir leid, dass ich mich da nich auskenn ^^
     
  4. 25. Juli 2006
    Es gibt beim Webbrowser das "DocumentComplete" event. einfach noch ne zustandsvariable festlegen und fertig.

    Gruß,
    Figger
     
  5. 25. Juli 2006
    ...ist auf jeden fall die bessere lösung.
     
  6. 25. Juli 2006
    hab jetzt das eingebaut:


    Private Sub browser_DocumentComplete()
    If (pDisp Is browser.Object) Then
    test.Caption = "Fertig geladen"
    Else


    ....


    If test.Caption = "Fertig geladen" Then
    browser.Document.Forms(0).pw.Value = "passwort"
    browser.Document.Forms(0).pww.Value = "passwort"
    browser.Document.Forms(0).submit
    End If

    ....

    Das Problem:

    Gleich beim starten steht im Label schon fertig geladen => geht nich!
    wie könnte ich das beheben ?
     
  7. 25. Juli 2006
    wie wärs hiermit?

    Code:
    Private Sub send_Click()
    browser.Document.Forms(0).first_name.Value = "Max"
    browser.Document.Forms(0).Name.Value = "Muster"
    browser.Document.Forms(0).birth_day.Value = "12"
    browser.Document.Forms(0).birth_month.Value = "12"
    browser.Document.Forms(0).birth_year.Value = "1980"
    browser.Document.Forms(0).elements(5).Checked = True
    browser.Document.Forms(0).street.Value = "Musterstr. 8"
    browser.Document.Forms(0).zip.Value = "12345"
    browser.Document.Forms(0).city.Value = "Musterstadt"
    browser.Document.Forms(0).country.selectedIndex = "5"
    browser.Document.Forms(0).email.Value = "muster@email.com"
    zustand=1
    browser.Document.Forms(0).submit
    end sub
    
    private sub browser_docmentComplete(zustand as integer)
    if zustand=1 then
    
    browser.Document.Forms(0).pw.Value = "passwort"
    browser.Document.Forms(0).pww.Value = "passwort"
    browser.Document.Forms(0).submit
    
    .
    .
    .
    usw
    end if
    End Sub
    zustand sei ein beliebiger integer.
    hab das mal so ausm stehgreif getippt, von daher is der code wahrscheinlich stark verbesserungswürdig
    aber das konzept sollte klar sein..

    Gruß,
    Figger
     
  8. 25. Juli 2006
    Ich machs immer so:

    ....Daten einsetzen....
    DoEvents
    While Browser.Busy
    DoEvents
    Wend
    ...weiter gehts....^^

    Hat bis jez immer gefunzt
     
  9. 26. Juli 2006
    Danke, das is am besten und klappt 1A !!
    Alle bekommen nen 10er
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.