Text in RS.com-Dateifeld eingeben??

  • Kann mal bitte jemand den Code ansehen und mir sagen, was ich falsch mache?
    Es soll RS.com im IE aufgerufen werden. Anschließend soll in das Dateifeld ein String eingegeben werden.

    [autoit]


    $ie = _IECreate($url, 0, 1)
    _IELoadWait($ie)
    $inpu1t = IniRead(@ScriptDir & "\och.ini", "Rapidshare.com", "Datei", "Nicht gefunden")
    ;$input1= filecontent
    $ie_form = _IEFormElementGetCollection($ie, 0)
    $input = _IEFormElementGetObjByName($ie_form, $input1)
    _IEFormElementSetValue($input, "Test")

    [/autoit]


    Die Seite wird aufgerufen, das war es dann aber auch...

    Hier der Feld-Code auf RS:

    [autoit]

    <input type="file" size="65" id="dateiname" name="filecontent" onchange="zeigeUploadBtn();" />

    [/autoit]

    2 Mal editiert, zuletzt von penta.phoenix (24. August 2008 um 12:02)

  • Danke, das wäre ein Lösung.
    Allerdings geht es mir gerade mehr um eine Spielerei mit den _IE-UDFs um da besser durchzublicken.
    Hab bisher nur 2 Sachen gemacht und hatte meine Schwierigkeiten damit.
    Dieses Eingabe-Skript basiert auf einem, welches bei freenet.de perfekt funktioniert.
    Deshalb verstehe ich jetzt nicht, was ich hier falsch mache.

  • So, jetzt habe ich zumindest mal eine Fehlermeldung:

    Zitat

    IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidObjectType (Browser securuty prevents SetValue of TYPE=FILE)

    Allerdings verstehe ich sie nicht wirklich. Wer hindert mich/AutoIt daran?
    Ist es der Browser selbst? Oder Rapidshare.com?


    Edit:
    Ich habs!!!! :rock:

    [autoit]


    $ie = _IECreate("http://rapidshare.com", 0, 1, 1)
    $form = _IEFormGetObjByName($ie, "ul")
    $input = _IEFormElementGetObjByName($form, "filecontent")
    WinWaitNotActive("RapidShare:")
    WinActivate("RapidShare:")
    _IEAction($input, "focus")
    Send("C:\Test")

    [/autoit]


    Die Lösung habe ich mit google(Weltwunder ;) ), einem englischen Forum, der AutoIt-Hilfe und ein klein wenig Verstand ausgearbeitet.
    Ich verstehe allerdings nicht, warum der IE inaktiv ist. Deshalb musste ich das mit WinWaitNotActive und WinActivate einbauen.
    Wäre nciht schlecht, wenn mir das jemand erklären könnte, damit ich die 2 Zeilen sparen kann.

    Einmal editiert, zuletzt von penta.phoenix (22. August 2008 um 20:31)

  • Ne, es liegt an AutoIt.
    Aus irgendeinenm Grund ist es nicht möglich, direkt auf ein <input type="file"/> zuzugreifen und dieses zu verändern.
    Du musst erst über den <form/>-Tag gehen.

    Z.B.:
    <form name="meineForm">
    <input type="file"/ name="datei">
    </form>

    Dank AutoIt ist es nicht möglich, auf per _IEGetObjectByName auf datei zuzugreifen, ohne zu erst ein _IEGetObjectByName auf meineForm auszuführen.

    Die lösung für Rapidshare.com hab ich ja schon weiter oben gepostet, da sieht man das auch nochmal.