HTML-Controls finden

  • Hallo zusammen,

    ich möchte ein Tool schreiben (bzw bin schon recht weit), mit welchem man sich sowohl bei allen möglichen programmen, als auch internet-seiten anmelden kann.

    dazu muss neben benutzer und passwort auch mitgeteilt werden, in welches control die daten geschickt werden sollen. für programme ist das kein problem, da ich dazu einfach das autoit-info tool nutzen kann. nun ist die frage, wie kann ich den quellcode einer internet-seite so analysieren, dass ich in einem gui anzeigen kann, welche möglichen eingabe-felder es gibt und welche namen diese haben (um erkennen zu können, welches control welchen zweck hat).

    möglich sollte es sein, gibt es sowas evtl. schon ... oder wie müsste ich vorgehen? da ich selber nur grund-html kann, bin ich da im mom etwas aufgeschmissen =)

    besten dank für jegliche tips.

  • Schau dir in der Hilfe mal alle GetCollection Funktionen an.

    z.B.:

    [autoit]

    _IEFormElementGetCollection

    [/autoit]

    usw...

    Ein Autoit-Script, welches diese Aufgabe übernimmt, habe ich im Forum von autoitscript.com auch schon mal gesehen.
    Habe leider den Namen vergessen...

  • hey, schonmal besten dank.

    derzeit ist mein vorhaben in erster linie für die arbeit, daher (noch) auf den IE beschränkt. wenn ich das ganze aber später zum standalone-tool umfunktioniere, werde ich mir die sachen zu firefox anschauen.

    irgendwie bringt mich das ganze aber nicht recht weiter, die ich von _IEFORMGET.. keine rückgabewerte bekomme. mein vorhaben ist ja, dass ich mich nicht auf einer festen seite einloggen möchte, sondern das ganze individuell gestalten will. ich möchte eine liste von controls aus der seite auslesen, die ich zum login brauche, bzw gebrauchen kann. aus dieser liste muss ich mir dann die richtigen elemente raussuchen und diese dem tool mitteilen.

    wenn ich mir folgendes bsp aus der hilfe anschaue, müsste ich quasi als rückgabe von der seite die ganzen input types, names, values etc bekommen (oder?):

    [autoit]

    ; *******************************************************
    ; Example 1 - Open a browser with the form example, set the value of a text form element
    ; *******************************************************
    ;
    #include <IE.au3>
    $oIE = _IE_Example ("form")
    $oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
    $oText = _IEFormElementGetObjByName ($oForm, "textExample")
    _IEFormElementSetValue ($oText, "Hey! This works!")

    [/autoit]

  • wenn ich mir folgendes bsp aus der hilfe anschaue, müsste ich quasi als rückgabe von der seite die ganzen input types, names, values etc bekommen (oder?):


    Teste das Beispiel doch einfach mal....

    Du erhälst nur diese beiden Objekte: "ExampleForm" und "textExample".
    Diese werden durch den Namen bestimmt.

    Danach wird der Text vom "textExample" in "Hey! This works!" geändert.


    Ich kenne mich zwar auch nur etwas mit _IE aus.
    Wie ich in meinem ersten Post aber schon geschrieben habe, müssten die GetCollection Funktionen genau das sein, was du suchst.

    Steht ja auch in der Hilfe:

    Zitat

    Bemerkungen:
    Wenn das gewünschte Formular-Element weder Namen noch ID hat, bekommt man über _IEFormElementGetCollection eine Sammlung aller Formular-Elemente.

  • Dann schau mal nach was dann in @Error für ein Wert gesetzt ist. In der Hilfe siehst du dann welcher Fehler passiert ist.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.


  • Falsch wie in den Kommentaren zu lesen setzt du damit den Wert eines Form-Elementes.
    Was du suchst ist

    [autoit]

    _IEFormGetCollection

    [/autoit]

    mfg autoBert