Announcement

Collapse
No announcement yet.

Webseite ansteuern; enthält Javascript

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

  • Webseite ansteuern; enthält Javascript

    Hallo,

    zur Zeit schreibe ich ein Programm in VBA um eine Webseite anzusteuern. Es soll folgendes tun:

    1.) Ein Textfeld ausfüllen.
    2.) Der Cursor soll auf das Textfeld gesetzt werden.
    3.) Die Enter Taste wird gedrückt.

    Bei dem Feld in HTML handelt es sich um einen Tag mit javascript. Sieht so aus:

    HTML Code:
    TextText<BR><INPUT style="WIDTH: 140px" onkeydown="if(window.event.keyCode == 13){location.replace('DispatchEmailLink.aspx?AnfoNr='+document.getElementById('theanfono').value);return false;}" id=theanfono size=5 type=text> 
    Ich bin mit meinem VBA Code soweit, dass ich das Textfeld bereits ausfüllen kann (letzte Zeile im Code):
    Code:
     
        Dim IEApp As Object, frage As String
        Dim i As Integer, IEDoc As Object
        
        Set IEApp = CreateObject("InternetExplorer.Application")
        IEApp.Visible = False
        IEApp.Navigate "http://seite.aspx"
        Do: Loop Until IEApp.Busy = False
        Do: Loop Until IEApp.Busy = False
        Do: Loop Until IEApp.document.readyState = "complete"
        IEApp.Visible = True
        Set IEDoc = IEApp.document
        
        IEApp.document.getelementbyid("theanfono").Value = 11111
    Wie geht es weiter? Ich vermute ich muss in der IEApp.document javascript ansteuern geht das vielleicht so?
    execScript("???", "JavaScript")

    Kann mir da jemand helfen?

  • #2
    Ist da nirgends ein Button den man klicken kann? Dann könntest Du einfach sowas machen:

    Code:
    IEApp.document.getelementbyid("mybuttonid").click()
    Also das nehme ich jetzt mal an die genaue API davon kenn ich nicht. Wenn es eine form ist dann könntest Du auch die Form submitten:

    Code:
    IEApp.document.getelementbyid("myformid").click()
    Die Ids müssen natürlich durch gültige IDs der Elemente der Seite ersetzt werden. Ich möchte nur nochmal darauf hinweisen, dass das jetzt getippt ist, da ich normalerweise in VBA nicht unterwegs bin. Ich könnte mir aber vorstellen dass es so etwas gibt

    Comment


    • #3
      Hallo,

      vielen Dank für die Antwort. Leider ist da kein button den man klicken kann, bzw. in "echt" (also als normaler Anwender mit der Maus) kommt man auch nur weiter,
      wenn den Cursor auf dem Textfeld hat und dann Enter tippt. Also kein Klicken auf eine Form oder ähnliches.
      Habe jetzt die Idee es könnte soetwas sein:

      Code:
      Call IEApp.document.parentWindow.execScript("onkeydown(13)", "JavaScript")
      Enter ist in javascript die 13, die würde ich mittels execScript als javascript übergeben. Funktioniert so aber leider nicht.
      Zuletzt editiert von patman28981; 21.06.2012, 08:40.

      Comment


      • #4
        Würde versuchen mit http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx den Focus auf das Element zu setzen und mit dispatchEvent den Tastendruck auszulösen
        Christian

        Comment


        • #5
          Hallo,

          vielen Dank für die Idee. Leider weiß ich nicht, wie ich das programmieren soll. Gibt es ein Beispiel?

          Comment


          • #6
            Nein, ich habe kein Beispiel
            Christian

            Comment


            • #7
              Hallo,

              konnte mittlerweile eine Lösung ausarbeiten javascript ist ansteuerbar über die execscript Methode. Hier ist ein Beispiel: http://www.vbaexpress.com/forum/showthread.php?t=9690

              Comment

              Working...
              X