ie.au3 frameset und links die es gibt erscheinen nicht

  • hi
    ich hab eine seite die aus einem frameset besteht, dieses beinhaltet wiederrum ein frame. in diesem noch ein frameset mit frame, und darin nochmal frameset mit frame. und so weiter noch ca 5 mal oder so.

    jedenfalls ist im "tiefsten" frame ein link, auf den ich zugreifen will.
    nun hab ich folgenden code versucht:

    leider führte er nicht zu dem gewünschten verhalten des browsers, sondern zu folgendem output:
    --> IE.au3 V2.4-0 Warning from function _IELinkClickByIndex, $_IEStatus_NoMatch

    ich habe das gefühl dass ich einen logischen fehler damit begehe, aber ich komme nicht drauf woran es liegen könnte. überprüft habe ich ob "abcdefg" richtig ist, was der fall ist. und es scheint als wird die schleife 0-mal durchlaufen. deswegen wäre ich für jede hilfe zum finden einer lösung dankbar.

    natürlich benutze ich die aktuellste version von autoit, das beiliegende ie und ie 6

    danke und ciao

  • *push*
    dieses problem besteht leider immernoch, und ich habe keinen nennenswerten fortschritt erzielen können, deswegen wäre ich für jede hilfe dankbar

  • ich habe die idee mit dem tiefer hinabhangeln ausprobiert:

    leider hat das skript bis 1000 hochgezählt was irgendwie nicht sein kann, wenn ich deine idde nun falsch verstanden habe, sei so gut und berichtige mich

    • Offizieller Beitrag

    Hallo!

    Ich mache eigentlich nichts mit IE, ich hätte es so gemacht:

    [autoit]


    $oFrame=_IEFrameGetCollection ( $oIE )
    while ($oFrame <> _IEFrameGetCollection ( $oFrame ))
    $oFrame <> _IEFrameGetCollection ( $oFrame ) ; abesteigen
    WEnd

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

    ; links holen wie gehabt
    $oLinks = _IELinkGetCollection ($oFrame)

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

    $i = 0
    For $oLink In $oLinks
    If StringInStr($oLink.href, "abcdefg") Then ExitLoop
    $i = $i + 1
    Next

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

    _IELinkClickByIndex($oFrame, $i)

    [/autoit]

    Ungetestet.

    peethebee

  • Und wie kann ich in einer GUI das Active X Object ausblenden oder deaktivieren?

    [autoit]

    ; *******************************************************
    ; Example 1 - Trap COM errors so that 'Back' and 'Forward'
    ; outside of history bounds does not abort script
    ; (expect COM errors to be sent to the console)
    ; *******************************************************
    ;
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>

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

    _IEErrorHandlerRegister ()

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

    $oIE = _IECreateEmbedded ()
    GUICreate("Embedded Web control Test", 640, 580, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
    $GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)

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

    GUISetState() ;Show GUI

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

    _IENavigate ($oIE, "http://www.autoitscript.com")
    GUICtrlSetState($GUIActiveX, $GUI_DISABLE)
    GUICtrlSetState($GUIActiveX, $GUI_HIDE)

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

    ; Waiting for user to close the window
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $GUI_Button_Home
    _IENavigate ($oIE, "http://www.autoitscript.com")
    Case $msg = $GUI_Button_Back
    _IEAction ($oIE, "back")
    Case $msg = $GUI_Button_Forward
    _IEAction ($oIE, "forward")
    Case $msg = $GUI_Button_Stop
    _IEAction ($oIE, "stop")
    EndSelect
    WEnd

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

    GUIDelete()

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

    Exit

    [/autoit]

    So ist leider das Object nicht mehr intakt.. besser gesagt es hängt und es lassen sich nicht mehr alle interaktionen durüchführen.