Mit Java Koordinaten von Website Canvas bekommen?

Hallo,
ich habe zwar etwas Ahnung von Java und etwas Ahnung von HTML aber das war es dann auch.
Daher hoffe ich, hier kann mir Jemand helfen:
Ich habe mir ein Programm gebaut, das im Online Casino Roulette spielt für mich.
Heißt, das Programm ruft öffnet eingangs chrome, geht direkt zur Seite des speziellen Online Roulettes.

Und spielt dort durch das Ablesen der Farbe an bestimmten Positionen sowie Klicks an bestimmten Koordinaten.

Spielstrategie und sowas ist jetzt gerade weniger wichtig.
Mein Problem ist:
Bisher habe ich im Vorfeld händisch (mit Robots getpixelcolor) an den relevanten Stellen die koordinaten abgelesen (heißt, der bot weiß wegen hardcoding dass er an der Stelle x,y des Screens die farbe ablesen soll).

Ich gebe dem Robot also die Koordinate bezogen auf den bildschirm vor (weil ich halt im Vorfeld getestet habe, wenn chrome maximiert ist und die seite offen ist, dann ist button 5 an diesen und jenen koordinaten. langweiriger Prozess)

Das so händisch abzulesen ist recht nervig.
Im Quellcode des Roulettetischs ist der Roulettetisch aber nur eine große Canvas und die ganzen Feinheiten spielen sich wohl in einem Javascript script ab.
Ich kann also nicht, wie gehofft, einfach die Position von button 3 ablesen oder so weil der ganze Tisch eine große Canvas ist.

Nun wüsste ich gerne, mit java, ob man irgendwie an die Koordinaten der Canvas kommen kann (also auf gut Deutsch gesagt: an welchen Bildschirmkoordinaten befindet sich links oben und rechts unten die Ecke der Canvas)?

Ich habe von so DOM Manipulationen und irgendwuie Netzverkehr auslesen nur wenig bis keine Ahnung, meine Javascript Kenntnisse sind maximal auf dem Stand wo ich Tampermonkey eine Seite alle 5 sekunden reloaden lassen wenn die Url „google.de“ ist.

Wäre cool, wenn mir da Jemand einen Tipp geben könnte.

ich verstehe gerade nicht genau wo du Ansetzen willst, weil du mal von Java und mal von Javascript redest.
Willst du jetzt die Position des gesamten Applets in der Webseite haben also im JavaScript Hoheitsraum oder wie?

Wenn ich das richtig verstehe, möchte er JS Elemente auf der Webseite, von außerhalb des Chrome Browsers, abrufen. Ich denke es wäre hier sinnvoller entweder ein Chrome Plugin zu entwickeln, oder aber eine Browser Library zu verwenden, die einen Browser imitiert. Davon gibt es zu genüge für Java.

Mal über Google bin ich auf „Jauntium“ gestoßen, nie verwendet, hört sich aber nach etwas an was für dich nützlich sein könnte.

Mein Problem ist Folgendes:
Ich programmiere in Java.
Und will bspw. bei einer Webseite wissen , an welchen koordinaten sich ein bestimmtes „canvas“ element befindet, das im Seitenquellcode vorkommt.

Meine einzige bekannte Methode, an sowas zu kommen, ist mittels javascript , DOM Manipulationen und so Scriptteilen wie Greasemonkey.

Wennich mit reinem Java an die koordinaten rankäme, wäre mir das lieber, aber vermutlich kann man solche Sachen nur mit javascript machen :-/

Das geht nicht nur mit Java nicht, das geht auch mit anderen Sprachen nicht. Dass es mit JavaScript geht, ist eher ein Seiteneffekt der Historie von JavaScript, und der Tatsache, dass ‚Der Browser‘ als Virtuelle Maschine verwendet wird, die ‚nativ‘ JavaScript ausführen kann.

(Manche meinen, JavaScript wäre eine Programmiersprache. Ich würde zögern, das so zu sagen. Es ist ‚etwas‘, womit man die DOM-Elemente einer Webseite manipulieren kann…)

Ansonsten bin ich mir ziemlich sicher, dass hier ein XY problem - Wikipedia vorliegt: Angenommen, du hättest eine Funktion in Java, die du so benutzen kannst:

void doSomething() {
    Point point = Magic.getCanvasPoint();
    ...
}

was würdest du dann im weiteren machen? (Was würde passieren, wenn jemand das Fenster verschiebt, oder auf der Seite scrollt, oder die Fenstergröße ändert?)


Warum das so schwierig ist, kann man sich vielleicht schon denken, wenn man versucht, in Pseudocode hinzuschreiben, was getCanvasPoint machen müßte:

public static Point getCanvasPoint() {
    // Obtain a browser instance. Which one? There may be one instance
    // of Chrome and one of FireFox....
    Browser browser = OperatingSystem.getBrowserInstance(...?...);

    // How to identify the tab? Via the title? What if there are multiple
    // Tabs with the same title?
    BrowserTab browserTab = browser.getTab(...?...);

    Dom dom = browserTab.getDom();

    // What if there are multiple canvases? How to locate
    // the canvas in the dom? Should this be a path 
    // like html->body->div[3]->div[1]->canvas?
    Canvas canvas = dom.get(...?...);

    // Which point is this? Relative to the parent, relative to 
    // the client are, the window, or the screen?
    Point point = canvas.getPoint(...?...);

    return point;
}

(Und wenn das ginge, hätten wir ein Sicherheitsproblem…)

SIcherheitsprobleme wären mir herzlich gleich :slight_smile:

Was andere Leute mit der Seite machen, juckt mich wenig, ich will Koordinaten von Alles und jedem :slight_smile:
Konkret habe ich sagen wir mal im chrome die seite eines online casinos mit online roulette offen, direkt die seite des Roulettetischs.

und ich hätte halt gerne beobachtet (oder irgendwo nachgelesen) wie sich die Elemente strecken, stauchen verschieben oder sonstwas, wenn ich die Auflsugn des Notebooks ändere.
Was gleich groß bleibt und was sich wie ändert oder verschiebt.

Damit ich mir dann eine ganz geniale mathematische Formel basteln kann wie ich zu einem bestimmten objekt der Webseite die Screen Koordinaten kriege.

Damit ich das nicht jedes einzelne Mal händisch ablesen muss wenn ich die Seite auf einem anderen Computer nutze.

Und der Roulettetisch ist halt ein großes Canvas Element, dass durch Magie oder serverseitigen javascriptkram oder was weiß ich immer verändert wird wenn man auf bestimmte visuelle Knöpfe drückt.

Quelltextmässig ist aber Alles leider nur eine große fette Canvas :-/