Problem beim auswaehlen eines Dropdown-Elements

  • Hallo,

    gerade angemeldet und schon die erste Frage...

    Also ich habe ein Dropdown-Element auf einer Webseite und moechte die 2. Option dort auswaehlen.

    Es gibt 2 Dropdown-Menues auf der Seite, deshlab auch _IEFormGetCollection($oIE, 1) und nicht 0.

    Mein Ansatz sieht so aus:

    [autoit]


    $oForm = _IEFormGetCollection($oIE, 1)
    $oFile = _IEFormElementGetObjByName($oForm, "return")
    _IEFormElementOptionSelect($oFile, 1, 1, "byIndex")

    [/autoit]

    Wenn ich das hier ausfuehre:

    [autoit]


    $oForms=_IEFormGetCollection($oIE)
    MsgBox(0,"Forms Info","There are "&@extended&" forms on this page")
    For $oForm In $oForms MsgBox(0,"Form Info",$oForm.name)
    Next

    [/autoit]

    Kommt 2 dabei raus, allerdings bei den Namen jeweils "0"... also nix...


    Die Form liegt in einem Div und sieht gemaess quelltext so aus:

    Spoiler anzeigen
    PHP
    <DIV id=returnField>
    <SELECT name=return> 
    <OPTION selected value=0>-</OPTION> 
    <OPTION value=1>12:10:1</OPTION> 
    <OPTION value=2>2</OPTION> 
    <OPTION value=3>3</OPTION> 
    <OPTION value=4>4</OPTION> 
    <OPTION value=5>5</OPTION>
    </SELECT>
    </DIV>


    Der Wert in <OPTION value=1> ist immer anders, sodass ich nicht bytext nehmen kann...

    Waere super wenn mir da jemand helfen koennte!
    Gruss
    Sir En

    Loesung:

    [autoit]


    $oForm = $oIE.document.getElementById("send") ; by ID
    ;~ $oForm = $oDocument.forms.item(1) ; get Form count 1

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

    $oSelect = $oForm.elements.item("return") ; "Select"-Item
    $oSelect.options.item(2).selected = True ; Select item 2

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

    2 Mal editiert, zuletzt von Sir En (27. August 2010 um 20:09)

  • ne html-form wird immer durch den form-tag geöffnet und geschlossen. und darin befindet sich dann auch der form-name:


    jetzt sollte bei dem name statt der 0 dann "testform" herauskommen und vielleicht klappts dann auch mit dem auslesen.

  • Ersteinmal danke...

    Es gibt tatsaechlich ein Form-Element (glaub ich)...


    <form action="http://localhost" method="post" id="send_hero">

    Allerdings sind hier 2 Dropdown-Felder enthalten....

    Ich schaue nachher mal ob ich da weiterkomme...

    Gruss
    Sir En

  • So... ich habe jetzt eine Info... allerdings habe ich keinen Namen sondern eine ID..

    PHP
    <form action="http://localhost/send.php" method="post" id="send">

    Jetzt bin ich so da rangegangen:

    [autoit]


    $oIE_Val = _IEGetObjById ( $oIE, "send" )
    _IEFormElementOptionSelect($oIE_Val, 1, 1, "byIndex")

    [/autoit]

    Das fubktioniert aber nicht...


    andygo: Dein Vorschlag mit dem Namen habe ich uebrigens ausprobier und er sagt mir, es gibt 2 Forms auf der Page...

    [autoit]


    $oForms=_IEFormGetCollection($oIE)
    MsgBox(0,"Forms Info","There are "&@extended&" forms on this page")
    For $oForm In $oForms MsgBox(0,"Form Info",$oForm.send)
    Next

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

    Waere toll wenn mir da nochmal jemand einen Denkanstoss geben koennte...

  • Da ich gleich nach Hause fahre und an dem Problem weiter arbeiten wollte waere es toll wenn da noch jemand eine andere Idee hat :)

  • Es handelt sich also um

    Spoiler anzeigen


    ?

    Theoretisch müsstest du es mal so probieren:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

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

    $oForm = $oIE.document.getElementById("send") ; by ID
    ;~ $oForm = $oDocument.forms.item(1) ; get Form count 1

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

    $oSelect = $oForm.elements.item("return") ; "Select"-Item
    $oSelect.options.item(2).selected = True ; Select item 2

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

    ; ===================================

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

    _IEGetObjById($oIE, "send") ; by ID
    ;~ $oForm = _IEFormGetCollection($oIE, 1) ; get Form count 1

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

    $oSelect = _IEFormElementGetObjByName($oForm, "return") ; "Select"-Item
    _IEFormElementOptionSelect($oSelect, 2, 1, "byIndex") ; Select item 2

    [/autoit]


    Habe einmal per UDF und einmal manuell aufgeschrieben^^ Ich kann atm nicht testen, ob es funktioniert, aber es sollte dir auf jeden Fall Anhaltspunkte geben.


  • Ich kann es hier leider auch nicht testen... aber wenn ich heute Nachmittag zu Hause bin werde ich das direkt mal ausprobieren...

  • [url='http://translation.autoit.de/onlinehilfe/intro/lang_variables.htm']

    [autoit]


    $oForm = $oIE.document.getElementById("send") ; by ID
    ;~ $oForm = $oDocument.forms.item(1) ; get Form count 1

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

    $oSelect = $oForm.elements.item("return") ; "Select"-Item
    $oSelect.options.item(2).selected = True ; Select item 2

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

    Das klappt!!!


    Vielen Dank!!!