html Link anklicken

  • Hallo,

    meine Frage:
    kann man einen html code (LINK) mit autoit ausführen lassen?

    Codezeile:

    Zitat

    TYPE=SPAN ATTR=CLASS:markt_insertion1_rootCategoryLabel&&TXT:Tiere

    Welche Befehle benötigt man dazu, habe schon alles mögliche erfolglos probiert!

    Liebe Grüße
    Ilse :(

    Einmal editiert, zuletzt von Ilse (8. April 2011 um 12:14)

  • Was verstehst du unter ausführen lassen? HTML ist lediglich ein Anzeigeformat das vom Browser interpretiert wird.

    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.

  • Hallo Chip,

    schön daß du dich meldest.
    Ist mir klar.

    Problem:
    Ein html link wird normalerweise mit href... ausgeführt.

    [autoit]


    href="http://www-autoit.de"

    [/autoit]


    Wenn kein href vorhanden ist, dann steckt z.B. javascript dahinter.

    [autoit]


    <script type="text/javascript" src="http://www.autoit.de" ></script>

    [/autoit]

    Ich probiers mal zu erklären:

    Auf der Htmlseite steht der Link
    Tiere

    dahinter verbigt sich aber kein html code href....!!!!
    sondern das

    [autoit]


    <span class="markt_insertion1_rootCategoryLabel">Tiere</span>

    [/autoit]

    Meine Versuche mit ieLinkClickbyText brachten nichts!
    Deßhalb die Frage:
    Wie kann man diese Zeile "ausführen" ?
    Bin mit _ieAction auch nicht weiter gekommen!

    Zitat

    Das meinte ich mit ausführen lassen

    [autoit]


    #include<IE.au3>
    $oIE = _IECreate("http://www.markt.de/inserieren.htm")
    _IELinkClickByText($oIE, "Tiere")

    [/autoit]

    Grüße
    Ilse ;)

  • Also ich habe jetzt das Script von dir getestet und geht bei mir Problemlos. Sprich auf Tiere wird auch geklickt und ich komme auf die Tierinserate-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.

  • Hallo Chip,

    bitte klick mal von Hand auf Tiere...
    dann geht eine neue Spalte auf!

    Und das passiert per Script nicht!
    Das Script macht was anderes....

    ;) Ilse

  • Das ganze wird per Ajax nachgeladen. Das kannst du nicht mit _IE "bedienen".

    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.

  • hm...das heißt mit Firefox würde das klappen?
    Ich meine mit den ff.au3 Befehlen

    und über die Codezeile hat man auch keine Chance? Div id...
    <span class="markt_insertion1_rootCategoryLabel">Tiere</span>

    ;) Ilse

  • hi,

    eventuell funktioniert ja die Kombination aus _IEGetObjByName/Id und anschließenden Klick auf dieses mit _IEAction !?

  • @elektrikk

    diese Kombination habe ich auch schon probiert
    (Kann sein daß ich da was falsch gemacht habe)... ging jedenfalls nicht!

    misterspeed

    merci für den Link. D.h. mit Autoit keine Chance?
    (Hab mir mit viel Mühe eine Gui gebastelt und jetzt bleibe ich hier hängen!)

    :( Ilse

  • Warum keine Chance mit autoit? Schau dir halt mal an wie das mit den CSV Files genau funktioniert. Hab das nur überflogen und auch keinen Account um die entsprechende Upload Sektion im Profil einzusehen. So wie ichs verstanden habe kannst du dort die notwendigen ID's der verfügbaren Kategorien nachschlagen und diese dann in den csv files oder in deinem Programm (z.B. in einem Kategorien Dropdown) hinterlegen um entsprechenden csv files zu erstellen. Diese kannst du dann natürlich auch per autoit dort uploaden. Vermutlich musst du dir dazu ein login Script basteln und irgendein Inputfeld ausfüllen für den Dateinamen der CSV. Danach noch Upload Button drücken und fertig. Sollte alles mit der ie.au3 oder ff.au3 zu bewerkstelligen sein. Kommt aber natürlich drauf an ob dieses Upload Formular Standard HTML nutzt oder ebenfalls mit ajax verschandelt ist.

  • Hallo Misterspeed,

    als alternative zur csv vielleicht doch noch eine Idee.
    Es lässt mir ja keine Ruhe...
    Kann man hier irgendwie einen CLICK auslösen?

    [autoit]


    #include <INet.au3>

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

    $bodyreadtext = _INetGetSource('http://www.markt.de/inserieren.htm')
    $search = ">Tiere</span>"
    If StringInStr($bodyreadtext,$search) <> 0 Then MsgBox(0, "Gefunden, Click auf Link", $search)

    [/autoit]

    Grüße Ilse
    ;)

  • also der code von dir funktioniert bei mir...

    [autoit]


    #include<IE.au3>
    $oIE = _IECreate("http://www.markt.de/inserieren.htm")
    _IELinkClickByText($oIE, "Tiere")

    [/autoit]

    eventuell keine aktuelle autoit version o.ä.? irgendwelche ie addons die stören könnte? hast du mal geteste, ob du denn auf anderen webseiten links mit der funktion _IELinkClickByText($oIE, "Text") klicken kannst?

  • @elektrikk ließ mal den thread ;), bevor du postest.

    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.

  • Hallo elektrikk,

    damit du den Fehler erkennst, mach mal folgendes:

    es wird eine Spalte geöffnet...

    und genau das macht dieses Script nicht

    [autoit]


    #include<IE.au3>
    $oIE = _IECreate("http://www.markt.de/inserieren.htm")
    _IELinkClickByText($oIE, "Tiere")

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

    deßhalb die Frage
    ob es evtl. damit gehen könnte?

    [autoit]


    #include <INet.au3>

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

    $bodyreadtext = _INetGetSource('http://www.markt.de/inserieren.htm')
    $search = ">Tiere</span>"
    If StringInStr($bodyreadtext,$search) <> 0 Then MsgBox(0, "Gefunden, Click auf Link", $search)

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

    Liebe Grüße
    Ilse ;)

  • Nö elektrikk funktioniert nicht. Er klickt zwar einen Link namens "Tiere", aber den am Seitenende. Dieser wählt nicht die Kategorie für "Inserat aufgeben", sondern verweist auf die Kategoriesuche. Das will Ilse ja nicht ;)

    Als Notlösung könnte man auch die normale mouseclick() Funktion nach Koordinaten verwenden. Du müsstest dann aber für jede Kategorie und Unterkategorie die genauen Pixelkoordinaten ermitteln und darauf hoffen, dass sich nichts am Layout der Seite ändert. Ausserdem solltest du zuvor die Fensterposition und Größe festlegen, damit sich durch Unterschiedliche Auflösungen keine Fehler ergeben. Nachteile hat diese Lösung jedemenge:

    - Abhängig vom Layout der Seite
    - Benutzer kann das Script durch Mausbewegungen stören
    - Fenster vom IE muss sichtbar und im Vordergrund sein
    - Fenster sollte fixe Größe haben
    - Umfangreiches Daten Array für Pixelpositionen der Kategorien und Unterkategorien notwendig

    Ganz ehrlich was spricht gegen die CSV Lösung? Genau für solche Anwendungsszenarien wurde der CSV Upload doch vom Betreiber der Seite ermöglicht. Kommerzielle Anbieter, die täglich zig Inserate einstellen machen das genau so. Diesen CSV Upload zu automatisieren ist vermutlich sehr viel einfacher, als das manuelle Formular zu automatisieren. Die einzigste Arbeit die du hättest wäre eben einmalig die Kategorie IDs zu ermitteln und dir etwas für die Erstellung einer Seiten konformen CSV Datei einfallen zu lassen. Wie diese Aussehen muss ist doch sehr gut dokumentiert. Es mag vielleicht lästig sein, dass man dafür einen verifizierten Account benötigt, das ist aber auch eine Sache die sich innerhalb von 1 Woche erledigt hat.

    EDIT: Hab ich wohl zu langsam geschrieben ^^

  • ups :D
    ja ok...

    [autoit]


    #include<IE.au3>
    $oIE = _IECreate("http://www.markt.de/inserieren.htm")

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

    _IELinkClickByText($oIE, "Tiere")
    _IELoadWait ($oIE)
    sleep(1000)

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

    ;erst auf "combobox" klicken
    $combobox = _IEGetObjById($oIE, "markt_header_searchCategoryInputDummy")
    _IEAction ($combobox, "click")

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

    Sleep(1000)

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

    ;item anklciken
    $comboboxitem = _IEGetObjById($oIE, "markt_header_menuItem_1200000000") ;tiere
    _IEAction ($comboboxitem, "click")

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

    ;~ $comboboxitem = _IEGetObjById($oIE, "markt_header_menuItem_1400000000") ;gesellschaft
    ;~ _IEAction ($comboboxitem, "click")

    [/autoit]

    oder hab ichs immer noch nicht verstanden? :)

  • ach mann... :D
    es war auch blöd beschrieben, was genau wo geklickt werden soll....

    also wenn das nicht die lösung ist werde ich in diesen thread für immer still sein :D

    [autoit]


    #include<IE.au3>
    $oIE = _IECreate("http://www.markt.de/inserieren.htm")
    _IELoadWait ($oIE)
    sleep(1000)

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

    $item = _IEGetObjById($oIE, "markt_insertion1_rootCategory_1200000000")
    _IEAction ($item , "click")

    [/autoit]

    du meinst doch das gelbe menü, in dem marktplatz, tiere usw. gelistet ist oder? und du willst auf den menüpunbkt tiere klicken, so das sich rechts daneben die neue spalte mit aquaristik, hunde usw. öffnet....oder???