Wert setzen bei <input type='file' ...>

  • Nur zur Info ...

    Mit JavaScript ist es "gott sei dank" nicht möglich bei einem

    Code
    <input type='file' ....>


    Werte zu setzten.

    Komischerweise funktioniert es per Xpath (noch?)

    [autoit]

    #include <FF.au3>

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

    _FFConnect()

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

    _FFOpenURL("http://ff-au3-example.thorsten-willert.de/")

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

    _FFXpath("//input[@id='datei']","",9)
    _FFObj("xpath","value","c:\\test.txt")

    [/autoit]

    ist von AutoIt Seite aus kein Sicherheitsproblem, da man eh lokalen Zugriff hat.

    Grüße
    Stilgar

  • Hallo,

    genau diese Funktion (Datei-Upload automatisieren) benötige ich hier für ein Projekt.
    Leider hat die von Dir vorgeschlagene Vorgehensweise bei mir nicht funktioniert.
    Nach einer genaueren Analyse kam ich dahinter, das nur folgende HTML-Syntax funktioniert:

    Code
    <input type="file" id="datei" size="30" value="">


    In meinem Fall (Anwendung eines externen Zulieferers, auf die ich keinen Einfluss habe) fehlt das

    Code
    value=""


    @error sitzt hier bei der _FFObj-Abfrage immer auf 4 ($_FF_ERROR_InvalidValue).
    Gibt es für mein Problem eine Lösung?

    Grüße,
    Manuel

    Einmal editiert, zuletzt von Manuel-NI (27. Mai 2009 um 14:34)

  • Hallo,

    theoretisch:

    [autoit]

    _FFXpath("//input[@id='datei']","value='c:\\test.txt'",9)

    [/autoit]


    oder auch

    [autoit]

    _FFXpath("//input[@id='datei']","",9)
    _FFObj("FFau3.xpath.value='c:\\test.txt'")

    [/autoit]

    "Problem" bei der ersten Lösung war:
    1) diese trifft auf schlechtes HTML, dann gehts nicht
    2) _FFObj überprüft ob das Attribut (value in dem Fall) vorhanden ist, bevor dessen Wert gesetzt wird.
    Dies kann man jedoch umgehen, indem man bei _FFObj einfach den gesamten Ausdruck in den ersten Parameter schreibt.

  • "Problem" bei der ersten Lösung war:
    1) diese trifft auf schlechtes HTML, dann gehts nicht

    Oh ja, schlechtes HTML gibt es in dieser Applikation zuhauf :( ich habe wie schon geschrieben leider keinen Einfluss darauf...

    Der erste Lösungsvorschlag hat bei mir nicht funktioniert, der zweite macht aber genau das was er soll.
    Vielen Dank für die Unterstützung!

    Liebe Grüße,
    Manuel