Möchte einen Autoit Bot für ein Browsergame schreiben. Mit welchem Befehl, kann ich ein Javascript nach etwas durchsuchen und das dann anklicken?

2 Antworten

Hi Spiegelfechter,

First of all, willst du das in AutoIT oder in JavaScript machen? Wenn AutoIT, dann kannst du JQuery vergessen. :( Falls du dass aber mit JavaScript machen möchtest, dann antworte mir nochmal kurz, und ich münze diese Antwort auf JQuery (oder PureJavaScript) um. Hier aber erst mal nur die AutoIT Variante.

Jede Website besteht aus Quellcode. Dieser Quellcode ist bei Spielen oder bekannten Websiten meist in einer Zeile zusammen komprimiert, jedoch kannst du in vielen Browsern mit F9, STRG-F9 oder STRG-SHIFT-I (oder Rechtsklick -> Element untersuchen) den Quellcode schön ordentlich dargestellt betrachten. Meist existiert hier auch eine hervorhebe Option, mit der du ein Element anklicken kannst und der Editor dann direkt zu diesem Element in dem Quellcode springt.

Hier musst du dir die Elemente nun ansehen. Was haben die Elemente gemeinsam? Worin erkennt man, ob ein Element ausverkauft ist?

Häufig spiegelt die ID des Elementes das Element selber wieder. So kannst du jedes Element unterscheiden. Es muss aber nicht so sein! Hier ist einfach Scharfsinn und ausprobieren gefragt.

Das Element selber kannst du dann in AutoIT und FF mit dem Befehl _FFClick anklicken. Hier musst du dann deinen eigenen Suchergebnisse einsetzen:

_FFClick("shop_item35", "id")

In diesem Beispiel klicke ich das Objekt in dem Quelltext an, welches die id=shop_item35 hat. Alternativ kannst du auch zum Beispiel dir die Klassen anschauen. Vielleicht hat jedes Shop-Element die selbe Klasse? Dann klicke das 35 Shop_element an:

_FFClick("shop_image", "class", 35)

Mehr Informationen dazu findest du hier: http://german.documentation.ff-au3.thorsten-willert.de/ff_functions/_FFClick.php

Das Auslesen der Daten ist leider nicht so einfach. Hier gibt es zwar die Methode _FFReadHTML(), jedoch gibt diese uns den kompletten Quelltext wieder. Hier muss man also irgendwie den Quelltext eingrenzen.

Mir haben die Befehle _StringBetween() und StringTrimLeft() / StringTrimRight() geholfen. Mithilfe von StringBetween kannst du den Text zwischen zwei Passagen herausfiltern, während du mit TrimLeft oder Right vorne und hinten noch Reste wegschneiden kannst. Wenn du Arrays schon kennst, kannst du dir diese Befehle mal ansehen.

Falls Probleme auftreten, antworte einfach nochmal auf diese Antwort. Ich versuche dann, dir beim Problem lösen zu helfen.

LG Lennard

(Und sorry, wenn ich etwas zu viel über HTML geredet habe...)

Was sind denn die FF-Befehle?

Du solltest das Markup der Seite analysieren, über die du parsen möchtest. Schließlich musst du erst den Itemtitel finden und danach den zugehörigen Button zum Kaufen.

Als Hilfe solltest du jQuery nehmen. So kannst du einfacher Elemente des DOM selektieren. Den Klick kannst du einfach simulieren, indem du das click-Event des Elements aufrufst.

Wenn du mit JavaScript allerdings nicht vertraut bist, dann lerne erst zumindest die Grundlagen der Sprache sowie du das DOM manipulieren kannst.


Spiegelfechter 
Beitragsersteller
 07.06.2017, 08:35

Vielen Dank für deinen rasche Antwort :D

Das sind ein paar AutoIT-Befehle mit denen man recht einfach Aktionen in Firefox ausführen kann, z.b. iwas anklicken oder einen Optionselect auswählen, etc.

Bin generell ziemlich neu was Programmieren angeht, lerne grade C, aber mit Java hatte ich leider noch nie näher was zu tun. ^^´ Wie genau kann ich jQuery denn verwenden? bzw. kennst du ein gutes Tutorial?

0
regex9  07.06.2017, 23:22
@Spiegelfechter

Mit Java wirst du auch bei jQuery nicht konfrontiert werden, denn dies ist ein JavaScript-Framework. JavaScript hat gar nichts mit Java zu tun, es sind 2 völlig unterschiedliche Programmiersprachen.

Einen Einstieg in JavaScript und jQuery findest du auf den jeweiligen Seiten der Hersteller.

Nimm dir für JavaScript wirklich die Zeit, denn deine gestellte Aufgabe ist für Anfänger eigentlich noch nicht wirklich geeignet, vorausgesetzt, es soll gut werden.

0