_FFLinksGetAll() klappt nicht [Lösung gefunden]

  • Hallo,

    Ich habe ein Problem mit der im Titel genannten Funktion.
    Bei jedem Aufruf der Funktion kommt folgende Fehlermeldung:

    Zitat

    _FFLinksGetAll ==> Error return value: StringSplit: http://magiccards.info/10e/jp.htmlFF5…5939http:FF5939

    Die genaue Nummer variiert natürlich, aber so in etwa sieht es jedes Mal aus.


    Das ist mein (recht übersichtlicher) Code:

    [autoit]

    #include <FF.au3>

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

    ; Open Firefox in correct window
    _FFStart("http://magiccards.info/sitemap.html#de")

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

    ; Open all edition windows
    clickEditionLinks("/de.html")

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

    Exit

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

    Func clickEditionLinks($searchText, $instance = 1)
    $aAllLinks = _FFLinksGetAll()
    ; | array[n][0] = href
    ; | array[n][1] = hash
    ; | array[n][2] = search
    ; | array[n][3] = name
    ; | array[n][4] = id
    ; | array[n][5] = text
    ; | array[n][6] = innerHTML
    ; | array[n][7] = target
    ; | array[n][8] = protocol
    ; | array[n][9] = port
    ; Failure - array[0][0] = 0
    For $Link in $aAllLinks
    $sLinkText = $Link[0]
    ConsoleWrite($sLinkText)
    if StringInStr($sLinkText, $searchText) Then
    _FFTabAdd($sLinkText)
    EndIf
    Next

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

    EndFunc

    [/autoit]

    Ich benutze die neuste Firefox-version und das MozRepl-Plugin ist auch standardmäßig aktiviert.
    Irgend eine Idee, was hier das Problem sein könnte?
    Denn der Delimiter sieht eigentlich okay aus.

    Einmal editiert, zuletzt von TheSHEEEP (1. Juli 2010 um 09:20)

  • Hallo,

    die Funktion hat Probleme auf manchen Seiten.

    Mit _FFXpath geht das Ganze einfacher und schneller:

    Spoiler anzeigen
    [autoit]

    ; Open Firefox in correct window
    _FFStart("http://magiccards.info/sitemap.html#de")

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

    ; Open all edition windows
    clickEditionLinks("/de.html")

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

    Exit

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

    Func clickEditionLinks($searchText, $instance = 1)

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

    $aAllLinks = _FFXpath("//a", "href", 6)

    For $sLink in $aAllLinks
    ConsoleWrite($sLink)
    if StringInStr($sLink, $searchText) Then _FFTabAdd($sLink)
    Next

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

    EndFunc

    [/autoit]


    (ungetestet, da gerade kein Windows zur Hand)
    Das Suchen des Strings könnte man auch noch per XPath machen, siehe auch dort:
    http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm

  • Vielen Dank,

    das funktioniert prima.
    Da ich bei Web- & Applikationsprogrammierung völlig neu bin, kannte ich natürlich Xpath auch nicht. Also auch vielen Dank für den Hinweis :)