Link im Frame ansprechen und Klick-Event auslösen

  • Hallo zusammen,

    ich habe mich hier angemeldet, weil ich -blutiger Anfänger- einfach nicht mehr weiter weiß.
    Seit zwei Tagen versuche ich vergeblich einen Link eines Frame anzusprechen um einen Klick auszulösen.
    Ich habe schon diverse Dinge versuch, die ich im Netz gefunden habe aber leider ohne Erfolg.

    Evtl könnt ihr mir ja helfen:

    Seit nunmehr über einer Woche versuche ich einen Check für mein Zeitkonto zu schreiben. Der Login läuft soweit auch super durch.
    Im nächsten Schritt soll nun ein Link in der Navigationsleiste angesprochen und betätigt werden.
    Da jeder Login eine neue Sitzung startet und somit die URL verändert, kann ich mit einem einfachen _IENavigate nicht ans Ziel gelangen.
    Ein _IELinkClickByText funktioniert auch "noch?" nicht, da ich meiner Erkenntnis nach erstmal ins Frame navigieren muss, oder?

    Einmal editiert, zuletzt von Mojo (24. September 2014 um 13:38)

  • Wie ist die Url der Seite?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Beim klick auf den Button wird eine JavaScript-Funktion aufgerufen. Diese kannst du so aufrufen:

    Code
    <a onclick=";return RadPanelbar1.onClick(8);" href="Module/Report/Report.aspx" class="NaviItem" target="FmeContent"> &nbsp;Monatsjournale</a>
    [autoit]

    _IENavigate($oIE,"javascript:return RadPanelbar1.onClick(8);")

    [/autoit]

    Da auch href eingetragen ist kannst du, falls das nicht klappt noch ein

    [autoit]


    _IENavigate($oIE,"Module/Report/Report.aspx")

    [/autoit]


    dazupacken ;)

  • Sag mal gehts noch?! Erst pushed ständig den Thread hoch und dann versucht auch noch ihn doppelt auf zu machen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Nachdem ich den 2. Thread aufgemacht habe, ist es mir auch aufgefallen und ich habe den 1. bearbeitet. Schön, dass du wenigstens einen Post für deinen Unmut erstellt hast...

    Selbstverständlich ist dein Unmut berechtigt aber ein Hinweis auf anderem Wege hätte es auch getan.

    Zum pushen: Wie soll ein "aus den Augen verschwundener" Post denn ansonsten weitere Berücksichtigung erhalten, wenn er nicht nochmal aufgegriffen wird?

  • In dem Thread hier fehlt jetzt zumindest dein letzter Stand.
    Was ist mit Kanashius Post. Was daran funktioniert nicht.
    Ohne gute Beschreibung kommt hier sicher keine Lösung zustande

  • Das einfache Navigieren funktioniert meiner Ansicht nach nicht wegen der wechselnden URL für jede Sitzung.

    [autoit]

    _IENavigate($oIE,"javascript:return RadPanelbar1.onClick(8);")

    [/autoit]


    wird garnicht erst angenommen.

    [autoit]

    _IENavigate($oIE,"Module/Report/Report.aspx")

    [/autoit]


    funktioniert nur so lange bis einer Sitzung eine neue ID zugewiesen wird.


    Wie im Screenshot zu sehen, setzt sich die URL ja großteils aus der Sitzungs-ID zusammen, die zu jeder Sitzung wechselt und aus dem Grund nicht mit eineme IENavigate navigiert werden kann?!

    Wie gesagt, leider bin ich ein blutiger Anfänger und versuche aus den Resultaten meines jetzigen Checks schlau zu werden. Vielleicht liegt der Fehler auch ganz woanders aber ich bin echt ratlos :(

    Ich schicke mal meinen bisherigen Code:

    [autoit]

    Func login ()
    _IENavigate ($oIE, "http://gator/login.aspx")
    _IELoadWait($oIE)
    Local $username = _IEGetObjByName ($oIE,"uiFldUsername")
    Local $password = _IEGetObjByName ($oIE,"uiFldPassword")
    Local $login_button = _IEGetObjByName ($oIE,"uiBtnLogin")
    _IEFormElementSetValue ($username, "username")
    _IEFormElementSetValue ($password, "password")
    _IEAction ($login_button, "click")
    _IELoadWait($oIE)

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

    Local $loginPageTitle = _IEPropertyGet ($oIE,"title")
    Local $loginResult = StringInStr ( $loginPageTitle , 'Gator WebServices')
    If $loginResult > 0 Then
    $statusLogin = 1
    $result = $result & 'Login: OK, '
    Else
    $statusLogin = 0
    $result = $result & 'Login: ERROR, '
    EndIf
    EndFunc

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

    Func showJournal ()
    _IENavigate($oIE,"gator/zwf/Module/Report/Report.aspx")
    EndFunc

    [/autoit]


    EDIT: Nachdem ich nun nochmal die Funktion _IEFrameGetCollection genötigt habe um den Namen des Frames herauszufinden, kann ich doch nun den Frame mit dem Befehl

    [autoit]

    $oFrameMenu = _IEFrameGetObjByName($oIE, "Menu")

    [/autoit]

    aufrufen und anschließend mit _IELinkClickByName nach " &nbsp;Monatsjournale" suchen und den Click mit IEAction auslösen, oder ist das zu primitiv gedacht  ?(

    5 Mal editiert, zuletzt von Mojo (24. September 2014 um 15:30)