_IELinkClickByText, iegetelementbyid geht nicht!!!

  • hallo leute hab ein kleines problem :(

    ich möchte das mein programm den button anklickt doch das tut es nicht.

    hier html schnipsel:

    Code
    <div id="footer" class="gradient"><a href="javascript:;" id="domainmodify_save" class="buttonMain floatRight">Save Changes</a></div>

    ich habs jetzt über id probiert und über text. beides klappt nicht!

    ich hoffe mir kann einer helfen

  • Entschuldigung, aber meine Glaskugel ist kaputt :rolleyes:

    Wärst du auch so nett, ein (lauffähiges!) Skript zu posten?
    Den mit ins Leere raten wird das nichts!
    (Und ebensowenig legen wir dir "den Arm aus der Sonne", um es schön zu sagen...)

    MfG

    P.S.: Die Funktionen tun das was sie sollen, wenn man allerdings nicht weiß wie man sie benützt...

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #include <Inet.au3>

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

    _IEErrorHandlerRegister()
    $IE = _IECreateEmbedded()
    GUICreate("Beispiel", 1000, 700)
    $Browser = GUICtrlCreateObj($IE, 10, 10, 960, 650)

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

    GUISetState()

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

    _IENavigate($IE, "XX")
    _IELoadWait($IE)
    $Input = _IEGetObjByName($IE,"fldemail")
    _IEFormElementSetValue($Input,"XX")
    $Input2 = _IEGetObjByName($IE,"fldpassword")
    _IEFormElementSetValue($Input2,XX")
    $form = _IEFormGetObjByName($IE, "registration")
    _IEFormSubmit($form)
    _IELoadWait($IE)
    _IENavigate($IE, "XX")
    _IELoadWait($IE)

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

    $ip = _GetIP()

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

    $suche = _IEDocReadHTML($IE)

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

    $class = StringRegExp($suche, '<INPUT class=hostcontent style=".*?" value=.*? name=(.*?)> </TD>', 1)

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

    $result = StringInStr($suche, $class[0],1,1)
    $result2 = StringInStr($suche, "hostcontent_1",1,2)

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

    $halfresult1=StringMid($suche,$result,$result2-$result)

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

    $class2 = StringRegExp($halfresult1, '<INPUT class=hostcontent style=".*?" value=.*? name=(.*?)> </TD>', 1)

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

    IF _IEXSearchText($IE, $ip) Then
    Else
    $Inputhost1 = _IEGetObjByName($IE, $class[0])
    _IEFormElementSetValue($Inputhost1, $ip)

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

    $Inputhost2 = _IEGetObjByName($IE,$class2[0])
    _IEFormElementSetValue($Inputhost2, $ip)

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

    _IELinkClickByText($IE, "Save Changes")

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

    _IELoadWait($IE)

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

    EndIf

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

    Func _IEXSearchText($oIE,$sText)
    $sTextAll = _IEDocReadHTML($oIE)
    If StringInStr($sTextAll,$sText) Then
    Return True
    Else
    Return False
    EndIf
    EndFunc

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd

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

    GUIDelete()

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

    Exit

    [/autoit]

    EDIT!!: also hab den fehler gefunden! es liegt nicht daran das er den button nicht findet, sondern darin das er in autoit keine funktion hat o.0

    wenn ich die seite mit internet explorer aufrufe und den button drücke, funktioniert er! aber wenn ich ihn im autoit fenster drücke funktioniert er nicht! auch nicht per hand!!

    woran liegt das? :/

    Einmal editiert, zuletzt von AndiIsl (26. August 2013 um 02:52)

  • habs jetzt auch mit ff.au3 geschrieben und da genau das gleiche problem! nur das ich halt manuel klicken kann!

    [autoit]

    #include <FF.au3>
    #include <WindowsConstants.au3>
    #include <Inet.au3>

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

    _FFStart("XX", "default", 1, False);

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

    If _FFIsConnected() Then ; Wenn die Verbindung zum FF hergestellt werden konnte, dann...
    _FFSetValue("XX", "fldemail", "id") ; Setzt in das Element mit dem Namen "" den Benutzernamen ein
    _FFSetValue("XX", "fldpassword", "id") ; Setzt in das Element mit dem Namen "" den Benutzernamen ein
    _FFFormSubmit() ; Bestätigt das Formular

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

    _FFOpenURL("XX")

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

    $ip = _GetIP()

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

    $suche = _FFReadHTML()

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

    $class = StringRegExp($suche, '<input class="hostcontent" name="(.*?)" style=".*?" value=".*?" type="text">', 1)

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

    $result = StringInStr($suche, $class[0],1,1)
    $result2 = StringInStr($suche, "hostcontent_1",1,2)

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

    $halfresult1=StringMid($suche,$result,$result2-$result)

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

    $class2 = StringRegExp($halfresult1, '<input class="hostcontent" name="(.*?)" style=".*?" value=".*?" type="text">', 1)

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

    IF _IEXSearchText($ip) Then

    MsgBox(0,"","ok")
    Else
    _FFSetValue($ip, $class[0], "name")

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

    _FFSetValue($ip, $class2[0], "name")
    Sleep(100)

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

    _FFClick("a", "tag", 3) <--- GEHT NICHT EGAL WAS ICH AUSPROBIER

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

    EndIf

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

    Else ; Sonst... (Fehlermeldung!)
    MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf

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

    Func _IEXSearchText($sText)
    $sTextAll = _FFReadHTML()
    If StringInStr($sTextAll,$sText) Then
    Return True
    Else
    Return False
    EndIf
    EndFunc

    [/autoit]