_ieAction (IE8) button Click will nicht

  • Hallo,

    wieso passiert hier nichts?
    (F5) startet Text

    Beim IE9 gab es Probleme
    Nun habe ich den IE8 da läuft es aber auch nicht!

    Mein Code:

    [autoit]


    #include <IE.au3>

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

    HotKeySet("{F5}","_start")
    HotKeySet("{F6}","_exit")

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

    $IEObj = _IECreate("http://translate.google.de/?hl=de#de|it|")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _start()
    $source = _IEGetObjById($IEObj,"source")
    _IEFormElementSetValue($source,"Das ist der Text")
    _IELoadWait($IEObj, 1500)
    $button = _IEGetObjById($IEObj,"gt-res-listen")
    _IEAction($button,"click")
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]


    Hier mal die Fehlermeldungen

    [autoit]


    --> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
    --> IE.au3 V2.4-0 Error from function _IELoadWait, $_IEStatus_InvalidObjectType
    --> IE.au3 V2.4-0 Error from function _IEGetObById, $_IEStatus_InvalidObjectType
    --> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidDataType

    [/autoit]

    Liebe Güße
    Ilse ;)

  • Dürfte wohl ein Problem mit den Sicherheitseinstellungen und dem Flash Plugin sein. Jedenfalls fehlen bei mir die Buttons zum Anhören des Textes und mir wird oben auch eine Leiste eingeblendet um den Adobe Flash Player zu installieren. Startet man den IE von Hand sind die Buttons vorhanden und auch das Flash Plugin verrichtet seinen dienst. Warum Flash nicht zur Verfügung steht wenn man per Autoit mit einem IE Objekt arbeitet weiss ich nicht...

    Der Rest des Scriptes funktioniert aber btw im IE8 bei mir fehlerfrei.

  • Bei mir läuft das Skript gut durch, außer der Listener greift am Ende nicht, wo das Übersetzte vorgelesen werden soll. Aber mit sowas habe ich im Moment auch Probleme, solche Schaltflächen zu klicken.
    Ich nehme an, dass es etwas damit zu tun hat, dass der ganze Content anscheinend via Ajax geladen wird, ka.

    Zu dem Problem mit Autoit IE und Flash Player:
    Falls ihr ein 64-Bit Betriebssystem besitzt, so startet Autoit immer den IE aus dem Ordner "Programme". Eben die 64-Bit Version, was man auch sieht, wenn man oben rechts auf Hilfe - Info geht. Beim normalen Starten des IE z.B. unten links via Taskleiste wird der 32-Bit IE gestartet aus dem Ordner (Programme(x86).
    Startet einfach mal manuell den 64-Bit IE und laded für diesen dann manuell die neue Flashplayer Version 11 Beta für 64-Bit Browser. Dann funktioniert das ganze auch wieder in dem IE von Autoit. ;)

  • Ahja auf die 64bit Sache wäre ich wohl nicht gekommen. Danke für den Hinweis. Hier ein etwas unschöner workaround der nur mit sichtbarem IE Fenster funktioniert:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

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

    HotKeySet("{F5}","_start")
    HotKeySet("{F6}","_exit")

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

    $IEObj = _IECreate("http://translate.google.de/?hl=de#de|it|")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _start()
    $source = _IEGetObjById($IEObj,"source")
    _IEFormElementSetValue($source,"test")

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

    $buttonSubmit = _IEGetObjById($IEObj,"gt-submit")
    _IEAction($buttonSubmit,"click")
    _IELoadWait($IEObj)

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

    $button = _IEGetObjById($IEObj,"gt-res-listen")

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

    $x=_IEPropertyGet($button, "screenx")
    $y=_IEPropertyGet($button, "screeny")
    MouseClick("",$x+5,$y+5,1,1)
    ;_IEAction($button,"click")
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]
  • Hallo
    und vielen Dank für die Infos.

    Also, ich habe Win7 32 bit.
    Flash läuft (youtube...) alles prima.
    Es erscheinen auch keine Fehlermeldungen.

    Bei den Sicherheitseinstellungen im ie8 habe ich auch alles mögliche probiert.
    Leider ohne Erfolg. ie9 geht wie bereits erwähnt auch nicht!

    Habt Ihr vielleicht ein Beispiel
    wie ich das Script ändern kann
    wenn der IE bereits läuft? Starte ich von Hand oder per Autoit
    dann kann ich keine Änderung des IE8 erkennen. Alles gleich!

    _IEnavigate, Winactivate...

    könnte man damit das irgendwie lösen?

    Liebe Grüße
    Ilse ;)

  • Guten Morgen Misterspeed,

    mußte gestern leider wieder los...
    Danke für dein Workaround, das klappt soweit.
    Hab ich das richtig verstanden:
    Das IE Fenster muß immer im Vordergrund sein?
    Ich wollte das Fenster im Hintergrund laufen lassen.
    Es wird also verdeckt. Geht das?

    Bin noch am probieren..

    Grüße
    Ilse ;)

  • Hallo Misterspeed,

    noch eine Frage zu deinem Code.
    Kann man das Ergebnis (Übersetzung) in einer Msgbox anzeigen lassen?

    [autoit]


    $Erg =_IEGetObjById($IEObj,"result_box")
    MsgBox(0,"",$Erg)

    [/autoit]

    Das hat leider nicht geklappt!

    Dein Code

    [autoit]


    #include <IE.au3>

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

    HotKeySet("{F5}","_start")
    HotKeySet("{F6}","_exit")

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

    $IEObj = _IECreate("http://translate.google.de/?hl=de#de|it|")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _start()
    $source = _IEGetObjById($IEObj,"source")
    _IEFormElementSetValue($source,"test")

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

    $buttonSubmit = _IEGetObjById($IEObj,"gt-submit")
    _IEAction($buttonSubmit,"click")
    _IELoadWait($IEObj)

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

    $button = _IEGetObjById($IEObj,"gt-res-listen")

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

    $x=_IEPropertyGet($button, "screenx")
    $y=_IEPropertyGet($button, "screeny")
    MouseClick("",$x+5,$y+5,1,1)
    ;_IEAction($button,"click")
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]


    Grüße
    Ilse ;)