Variabler Linkinhalt

  • Ich hab ein Script vor langer Zeit mit variablen Linkinhalt im englischen Forum gefunden (bzw. erfragt :)), bisher hat es auch immer gut funktioniert, nun habe ich aber das Problem, dass es auf meiner Seite zwei (oder mehr) links mit selben inhalt gibt. Sprich (Beispiel):

    https://autoit.de/www.google.de/1256251625162
    https://autoit.de/www.google.de/2763723722323
    https://autoit.de/www.google.de/2353653663563

    Ich möchte jetzt aber wählen können, ob ich den ersten, zweiten oder dritten Link klicke. Könntet ihr vielleicht mein Script verbessern.

    Hier mein Script: Bei string to look for kommt hier jetzt zum Beispiel google rein.

    [autoit]

    #include <IE.au3>
    $oIE = _IECreate("your-url")
    $oLinks = _IELinkGetCollection ($oIE)
    $sHref = "string to look for"
    For $oLink In $oLinks
    MsgBox(0, "Link Info", $oLink.href)
    If StringInStr(String($oLink.href), $sHref) Then ; Force String just in case you hit a null value
    _IEAction($oLink, "click")
    ExitLoop
    EndIf
    Next

    [/autoit]

    edit: Hat keiner hier wenigstens ein Lösungsansatz für mich, damit ich vielleicht selber gucken kann?
    Wäre echt nett...

    3 Mal editiert, zuletzt von Großer (27. Oktober 2007 um 15:53)

  • Lösungsansatz:
    Alle Links (den HREF), die das Suchwort enthalten, hintereinander durch | getrentt in einen String schreiben
    In einer Gui das in einer GUICTRLCREATELIST ausgeben
    Benutzer Link auswählen lassen
    den markierten Link in $oLinks wieder suchen und _IEAction "click"

    //Edit: wenn du es nicht hinkrigst, gibts ein paar Codeauschnitte

    Einmal editiert, zuletzt von progandy (27. Oktober 2007 um 16:39)

  • Wäre nett, wenn du mir ein paar Codeausschnitte zur verfügung stellen würdest, bin leider noch Anfänger im Programmieren...

  • OK

    Spoiler anzeigen
    [autoit]

    ...

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

    Dim $FoundLinks

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

    ...

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

    If StringInStr(String($oLink.href), $sHref) Then ; Force String just in case you hit a null value
    $FoundLinks = $FoundLinks & "|" & $oLink.href
    EndIf

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

    ...

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

    GUICreate("Choose Link",300,400) ;Auswahlgui erstellen
    $list = GUICtrlCreateList("",0,0,300,350)
    GUICtrlSetData($list,$FoundLinks) ; Liste für Links
    $button = GUICtrlCreateButton("Öffnen",125,360,50,30) ;Button zum öffnen
    GUISetState()
    While 1 ; GUI-Schleife
    Switch GUIGetMsg()
    Case $button
    ExitLoop
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    $sHref = GUICtrlRead($list)
    GUIDelete()

    For $oLink In $oLinks
    If StringInStr(String($oLink.href), $sHref) Then ; Force String just in case you hit a null value
    _IEAction($oLink, "click")
    ExitLoop
    EndIf
    Next

    [/autoit]
  • Oh du hast jetzt etwas mit Benutzeraufforderung programmiert. Ich hatte mir das eigentlich im Hintergrund gedacht, halt automatisch. Trotzdem danke für die Mühe :)...