Announcement

Collapse
No announcement yet.

Browser und Mausklick event-- wann seite geladen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Browser und Mausklick event-- wann seite geladen?

    Hallo

    ich amche ein kleines automationstool

    ich habe die koordinaten von einzelnen knöpfen eienr webseite ausgelesen

    diese will cih un ansteuern, dann klicken---neue siete läd
    maus auf neue koordinate und dann klicken---nue siete läd
    maus auf neue koordinate etc

    problem ist, dass das mous bewegen und klick simulieren so schnell geht, dass die internet siete nicht geladen ist..

    (webbrowser in vb benutzt)



    ich müsste nun also ein kurze pause einlegen...

    ala sleep(in msec)
    haut nciht hin....



    wie wäre ein solche pause, die prüft, on die neue seite im browser shcon geladen ist, und dann erst als nächstes die maus zum punkt bewegt und klickt??



    hei rmal mein ausschnitt:



    Code:
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
     
    
    
            Windows.Forms.Cursor.Position = New Point(Me.Location.X + Convert.ToInt32(TextBox20.Text), Me.Location.Y + Convert.ToInt32(TextBox19.Text))
            LinksKlick()
    
            //hier muss pause so rein, dass neue siete im browser geladen ist
    
            Windows.Forms.Cursor.Position = New Point(Me.Location.X + Convert.ToInt32(TextBox21.Text), Me.Location.Y + Convert.ToInt32(TextBox22.Text))
            LinksKlick()

    ich würde mich freuen, wenn jemand meinen code ergänzen würde^^

    denke mal es gitb eine abfrage ob siete geladen...
    und dann gehts wohl mit ner if anweisung weiter...

    weiss aber slebst nciht genau wie es geht...

    danke für die Hilfe...

  • #2
    Die Frage ist: Willst du damit einen externen Browser ansteuern oder verwendest du in deiner Applikation das WebBrowser-Control?

    Wenn du das WebBrowser-Controll nutzen würdest, gäbe es da den Event "DocumentCompleted", welches erst dann ausgelöst wird, wenn das Controll die Zielseite geladen hat.

    Ganz "dirty" dann halt die ganze "klick-mal-für-mich-logik" dann in eine Methode rein, die den "DocumentCompleted"-Event handlet.

    Willst du einen externen Browser ansprechen ist das komplizierter. Woher soll dein System die Information kriegen: Seite geladen. Wenn, dann könnte ich mir vorstellen, dass das nur mit dem IE ginge - auf die internen Zustände eines Browser wie FireFox zuzugreifen ist eine andere Geschichte.

    Die Pause wäre die andere Lösung: Unsauber, aber wenns nicht anders geht...

    Stichwort hierzu: Thread.Sleep... wenn du das googelst, wirst du aber tausend Gründe finden, das nicht zu verwenden.

    Gruss
    ReatKay

    Comment


    • #3
      Hallo und danke dir

      ja, also wie geschriben es handelt sich um den webbrowser von vb....

      da ich mich mit events noch nciht so auskenne bzw nicht weiss wie man diese angibt, würde ich mich über eine ergänzung meines codes freuen^^

      habe bei msdn und google suche ncihts sinnvolles für document completed finden können...


      ein freund gab mit mal eine art "webbrowser1.navigated" als event aber da hat auch etwa nciht gestimmt...

      im prinzip brauche ich für mein kleines programm nciht mehr als dass es wartet zwischen den klicks bis die siete ne geladen hat^^


      das wäre echt super wenn cih da hilfe bekomme^^

      Comment


      • #4
        Google ist dein Freund

        Comment


        • #5
          jo richtig, danke für die antwort...


          aber wie erwähnt hatte ich bei gogle und msdn geschaut.

          leider kann cih mit den angaben nicht viel anfangen da ich nciht weiss wie cih dieses event einbaue bzw deklariere oder wie auch immer emin problem genannt wird....


          blosses copy pasten aus msdn hat hier keinen sinn...

          ich hatte auf einen ergänzten source code gehofft...

          Comment


          • #6
            öhm... erstmal kann man dann wohl das hier empfehlen:

            Galileo C# OpenBook

            Zum 2.: Welche IDE benutzt Du? Wenn Du Visual Studio Express benutzt ist das mit den Events ganz einfach:
            Du klickst das WebBroswer Control an
            Gehst auf die Eigenschaften dazu
            Oben schaltest Du auf Events/Ereignisse um
            Doppelklickst in die Zeile für Dein gewünschtes Event
            Eine Funktion wird erzeugt die aufgerufen wird sobald das gewünschte Ereignis eintritt

            Wenn Du es manuell machen möchtest, dann musst Du eigentlich nur hinschreiben:

            [highlight=c#]
            webBrowser1.DocumentCompleted +=
            [/highlight]

            Danach drückst Du 2 mal auf die Tab Taste und hast auch alles dastehen was Du brauchst.

            Comment

            Working...
            X