DropDown auf Website automatisch auswählen

  • Hallo an alle !

    Ich bin ganz neu hier im Forum und grüße alle, die schon lange mit dabei sind.
    Ich bin seit fast 20 Jahren Programmierer. Mittlerweile EDV-Leiter im ÖD.
    In dieser Woche bin ich auf AutoIt aufmerksam geworden. Ich suche nämlich nach einer Möglichkeit,
    Tonerbestellungen für Drucker über eine Website automatisch durchzuführen.

    Über Tutorials bin ich schnell relativ weit gekommen. Ich rufe den IE mit der entsprechenden Website auf.
    Im Tutorial ist auch schon angegeben, wie ich Benutzername und Passwort "eingeben" kann.
    Ich muss allerdings vorher noch in einem Dropdown-Menü die Sprache auswählen. Dort steht "Germany" drin.

    Kann mir jemand weiterhelfen, wie man das automatisieren kann?


    Vielen Dank für eure Hilfe

    Gruß Jörg

    3 Mal editiert, zuletzt von JKG (9. Dezember 2012 um 15:19)

  • Hallo ihr beiden,

    vielen Dank für Eure Antworten. Konnte jetzt zumindest in den Beispielen nachvollziehen,
    wie das umschalten der DropDown-Menüs funktioniert. Jetzt muss ich es "nur" noch auf
    meine Bestell-Website übertragen.

    Gruß JKG

  • Sorry, aber leider bekomme ich die Beispiele nicht auf meinen Fall übertragen.
    Im Beispiel kann ich problemlos die Werte abändern, auf der von mir benötigten Homepage nicht ... :(

    Hier ist zunächst mal mein Script:

    [autoit]


    ; *******************************************************
    ; Auswahl der Sprache "Germany" aus einem DropDown-Feld
    ; *******************************************************
    ;
    #include <IE.au3>
    $oIE = _IECreate ("http://www.okiflatrate.com")
    $oForm = _IEFormGetObjByName ($oIE, "cselector")
    $oDropDown = _IEFormGetObjByName ($oForm, "0")
    _IEFormElementSetValue ($oDropDown, "www.okiflatrate.com/de/frames.asp")

    [/autoit]

    Außerdem habe ich noch eine Txt-Datei, die mir ein Tool erzeugt hat, welches
    die Website analysiert hat.

    Code
    Forms aus http://www.okiflatrate.com 
    
    
    Form-Index: 0 / Name: form1 
    Form: 0 /Element: 0 /Name: sCustomerNo 
    Form: 0 /Element: 1 /Name: sPassword
    
    
    Form-Index: 1 / Name: cselector 
    Form: 1 /Element: 0 /Name: 0

    Es wäre toll, wenn mir da noch mal jemand unter die Arme greifen könnte :)

    Schonmal Danke und noch einen schönen Samstag

    Jörg

  • Hallo!

    Hat keiner eine Idee?
    Gibt es denn vielleicht bessere Tools um die Website besser zu analysieren?

    Oder kann es an dem Java liegen, welches auch auf der Website mitläuft?

    Gruß Jörg

  • Bessere Tools?
    Das beste Tool ist die Quellcode-Ansicht des Browsers. ;)
    Stell mal den Link zu der Seite ein (Wird ja nichts internes sein, wenn's um Bestellungen geht).
    (Hat sich erledigt, Shadow hat mich drauf hingewiesen)
    "cselector" ist der Form-Name und "cselector2" der Element-Name.

    [autoit]


    #include <IE.au3>

    [/autoit][autoit][/autoit][autoit]

    $oIE = _IECreate("http://www.okiflatrate.com/")
    _IELoadWait($oIE)

    [/autoit][autoit][/autoit][autoit]

    $oForm = _IEFormGetObjByName($oIE, "cselector")
    $oElement = _IEFormElementGetObjByName($oForm, "cselector2")

    [/autoit][autoit][/autoit][autoit]

    _IEFormElementSetValue($oElement, "http://www.okiflatrate.com/de/frames.asp")

    [/autoit]

    lg chess

    Edit:
    Nochmal kurz zur Erklärung:

    HTML-Ausschnitt (Zeile 62 - 83)


    <form name="cselector">
    Das ist also unser Form-Name (Für _IEFormGetObjByName).

    Das eigentliche Element, auf das wir zugreifen wollen, ist jedoch das Select-Element :

    <select class="wider" id="cselector2" onChange="javascript:changeLocation(this)">

    Die IE.au3 akzeptiert ID & Name gleichermaßen. Also ist der Name von dem Select-Element "cselector2" (Für _IEFormElementGetObjByName).

    So, jetzt müssen wir nur noch rausfinden, auf welchen Wert wir das Element setzen müssen, den Germany geht nicht.

    <option value="http://www.okiflatrate.com/de/frames.asp">Germany</option>

    Wir sehen: Der Wert für _IEFormElementSetValue lautet "http://www.okiflatrate.com/de/frames.asp".

  • Hi Chess,

    herzlichen Dank ! PERFEKT !!!
    So funktioniert es. Tja, das war dann wohl aus der Rubrik "Anfängerfehler in einer neuen Sprache".

    Nochmals vielen Dank :)

    Gruß Jörg