Text aus Internet Explorer oder Firefox lesen, dann...

  • So funktioniert auch.

    Ich hoffe jetzt das letzte:

    Kann ich ihn einen Text suchen lassen und ihn dann auf die Position dieses Textes klicken lassen?

  • Komischerweise will er mir nicht auf den Link klicken.. lesen kann er ihn aber wenn ich ihn nur suche.

  • Handelt sich um eine Seite die ich selbst gemacht hab und die imo nur bei mir lokal läuft.. deshalb wunder ich mich auch so.. is nix anderes als hier dieses "Abmelden".. sieht fast genauso aus. frage: warum steht im editor folgendes:

    [autoit]

    __FFSend: FF_AutoItScript.SearchLink("text","blabla","top")

    [/autoit]

    es geht mir um das "top"

  • Das "top" ist der "top"-Frame, das wird dort immer stehen, solange kein anderer Frame aufgerufen wurde (_FFFrameEnter).
    Top-Frame ist auch eine ganz "normale" Seite ohne Frames.

    Schau dir einfach mal das Beispiel an:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>

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

    $Socket = _FFStart("http://thorsten-willert.de",default,2)

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

    If $Socket <> -1 Then
    ; Frame anwaehlen - alle nachfolgenden Befehle finden in diesem Frame statt
    _FFFrameEnter($Socket,0)
    If Not @error Then
    If _FFClickLink($Socket,"AutoIt-FF.au3","text") Then
    _FFLoadWait($Socket)
    If _FFClickLink($socket,"German/index.php") Then
    _FFLoadWait($Socket)
    ; anderen Frame anwaehlen
    _FFFrameEnter($Socket,"TW_view","name")
    If Not @error Then
    _FFClickLink($Socket,"_FFFormCheckBox","text")
    sleep(3000)
    ; wird im aktuellen Frame geoeffnet!!!
    _FFOpenURL($Socket,"http://ff-au3-example.thorsten-willert.de/")
    EndIf
    EndIf
    EndIf
    EndIf
    ; Frame wieder verlassen
    _FFFrameLeave($Socket)

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

    sleep(3000)
    _FFOpenURL($Socket,"http://texturen.thorsten-willert.de")

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

    _FFDisConnect($Socket)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Achso das heißt es sucht also NUR in der Frame nach dem link.. Aber bei der Textsuche sucht es überall? (dort findet es ja die link namen)

    Also muss ich dann in Frame 1,2,3 wechseln richtig?

    edit: am testen

  • Ach super es funktioniert !

    Vielen vielen Dank.

    Noch etwas..

    was wenn ich zum Beispiel etwas habe wie

    ja "antworten"
    nein "antworten"
    vielleicht "antworten"

    und nur das antworten ist der link..
    kann ich ihn dann dazu bringen es bei dem vielleicht "antworten" zu klicken? sind ja 3 "gleiche" links

  • Also es gibt keine möglichkeit

    vielleicht link
    ja link
    nein link

    dazu zu bringen nur den link anzuklicken? (da der href sich ändert)

  • Also:

    es sind viele verschiedene möglichkeiten was geklickt werden kann:

    hallo antworten
    halli antworten
    hass antworten
    blabla antworten

    id etc ändert sich jedesmal is n wenig kompliziert..
    Wenns diese möglichkeit nicht gibt krieg ichs aber auch anders umständlich hin.. wäre jetz kein weltuntergang

    edit sagt:

    im Quellcode sieht das so aus:

    <b>blablabla</b> lalala <a href="antwor_id12345345">antworten</a>

  • also text, was dazwischen, link

    blablabla "hier steht auch was" ~link~

    <b>blaaal</b> *hier steht was* <a href="antwort.php?action=activate&asw_id=54324291">antworten</a>

    etwas ausführlicher

    eigentlich ganz simpel, aber für jedes die Href raussuchen etc is eben noch n riesen haufen arbeit..

  • öhm ja jede menge halt schon.. ^^

    <p class="listanswrow"><b>antwort1</b> Nummer7 <a href="answer.php?action=activate&asw_id=54179939">antworten</a>)<br>
    <p class="listanswrow"><b>antwort2</b> Nummer6 <a href="answer.php?action=activate&asw_id=65446444">antworten</a>)

    das is jetz einfach einmal komplett
    öhm davor is eigentlich sonst nix mehr großes

    ausser vlt du meinst das:

    <div align="center" style="margin-top: 10px; margin-bottom: 10px;"><img src="../images/answ_divider.gif" width="234" height="11" alt="" border="0"></div>

    edit sagt:

    ich krieg hin, dass er das erste benutzt.. aber mehr auch noch nicht. ich probier morgen mal rum :) bin dann mal schlafen

    VIelen Dank nochmal Stilgar

    Einmal editiert, zuletzt von TheWhiteDeath (18. März 2009 um 23:59)

  • Na also.
    Könnte so aussehn:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>
    $Socket = _FFConnect()

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

    $sAntwort = "antwort2"

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

    $sHREF = _FFXPath($Socket,"//p[@class='listanswrow' and contains(.,'" & $sAntwort & "')]/a","href",5)
    If Not @error Then _FFOpenURL($Socket, $sHREF)

    [/autoit]

    In dem Fall wird der link bei "antwort2" geöffnet.

    [EDIT]
    Ich glaub da ist eine Erklärung nötig :D

    Sucht ein Element "a" innerhalb von Element "p" mit der "class='listanswrow'" das einen Text $sAntwort enthält - contains()

    [autoit]

    _FFXPath($Socket,"//p[@class='listanswrow' and contains(.,'" & $sAntwort & "')]/a","href",5)

    [/autoit]


    davon wird dann die "href" zurückgegeben im _FFXPath Modus 5 (FIRST_ORDERED_NODE_TYPE). Das heist, daß das erste Element das diesen Kriterien entspricht wird zurückgegeben.

    [EDIT2]
    Fehlerabfrage eingefügt.

    5 Mal editiert, zuletzt von Stilgar (19. März 2009 um 09:27)