Tampermonkey: getElementById().click() geht plötzlich nicht mehr

#1
Hallo,
ich habe ein kleines Tampermonkey Script das einfach einen Button auf einer Webseite drückt.
Bisher funktionierte das auch einwandfrei. Doch nun plötzlich nicht mehr. Nicht im Chrom-Browser u. nicht im Firefox.

Der script Befehl ist ein einfaches: document.getElementById('main_deposit_button_top').click();

Wenn ich auf der Seite den Chrom-Debugger bzw. Console anschmeiss und das dort eintippe, wird der Button wie gehabt gedrückt.
Ich hab schon bischen rumgesucht und ich glaube das der Befehl bzw. der Button anscheinend nun nicht mehr bekannt ist, wenn das in Tampermonkey ausgeführt wird.

Hier ist sonst auch das Tampermonkey script:

Code:
// ==UserScript==
// @name         Test
// @namespace    http://tampermonkey.net/
// @description  Button drücken
// @author       rEGoSCH
// @version      0.1
// @match       http://*/*
// @match       https://*/*
// @grant        none
// ==/UserScript==

(function() {
//    'use strict';

    // Knopf drücken
    document.getElementById('main_deposit_button_top').click();


})();
Irgendwelche Tipps wären schön.

LG Reggosch
 

basti1012

Well-Known Member
#2
Der Code soll ja irgendwas ( Button ) auf einer Seite anklicken mit der ID
main_deposit_button_top

Da es immer ging denke ich mal das der Seitenbetreiber vieleicht die ID geändert hat.
Wenn du willst kannst du ja mal den Link posten dann kann man mal kucken was auf der Seite da los ist.
 
#3
Danke für deine Antwort. Die ID hat sich ja nicht geändert, wenn ich auf der Seite mit Rechtsklick->Untersuchen die Entwicklungsumbegung von Chrom anschmeisse und dort den Befehl genauso eingebe, funktioniert das ja.
Nur über Tampermonkey nicht mehr seit kurzem...

Die Seite ist https://freebitco.in
 

basti1012

Well-Known Member
#4
Welcher Button soll das den sein mit der Id ?
Ich kann die ID nicht finden . Hast du mal Cache aktualiesiert und dann gekuckt ob es die ID noch gibt ?
 

Jan Krüger

Well-Known Member
c-b Team
c-b Experte
#5
Der Button taucht nur mit Account auf.
Es kann aber trotzdem sein, dass das an einer Änderung an der Seite liegt. Vielleicht wartet die Seite neuerdings ein Weilchen damit, ihren Event-Handler an den Button zu hängen.
Du wirst nicht drum herumkommen, etwas zu experimentieren.
 
#6
Danke für deine Antwort. Müsste auch mit jedem anderen Button gehen der da zu sehen ist für Dich/Euch. (Ich guck mal erstmal ob ich da ein finde x)
Ja, rum experimentieren... bei Tampermonkey kann man einstellen wann bzw. wo der Code hin soll. An Anfang der Seite oder Mitte oder Ende. Aber das brachte auch nichts. Und wenn ich per Breakpoint per Debugger an der Stelle lande kommt sowas wie undefined, kennt er da nicht. Aber wie kann ich das im Debugger feststellen, habe gerade angefangen mit dem JS-Debugger (hatte früher C programmiert bischen).
 

basti1012

Well-Known Member
#7
Alles klar. Habe ihn jetzt auch gefunden.
Bei mir klappt es dann so
Code:
// ==UserScript==
// @name         Test
// @namespace    http://tampermonkey.net/
// @description  Button drücken
// @author       rEGoSCH
// @version      0.1
// @include       http*://freebitco.in*
// @match       https://*/*
// @grant        none
// ==/UserScript==
window.onload = function(){
    document.getElementById('main_deposit_button_top').click();
}

EDIT.
Besser wäre so dann schmeisst er keiner Fehler auf der Startseite raus
Code:
// ==UserScript==
// @name         Test
// @namespace    http://tampermonkey.net/
// @description  Button drücken
// @author       rEGoSCH
// @version      0.1
// @include       http*://freebitco.in/?op=home*
// @grant        none
// ==/UserScript==
window.onload = function(){
    document.getElementById('main_deposit_button_top').click();
}
 

basti1012

Well-Known Member
#9
Ich glaube das Script wahr schneller als die Seite. Ich meine damit das der Button geclickt wurde obwohl er noch gar nicht im DOM geladen ist .
Deswegen jabe ich das onload drum herum gebaut.
Eigentlich sollte man das mit DOMContentLoaded machen.
Also so
Code:
// ==UserScript==
// @name         Test
// @namespace    http://tampermonkey.net/
// @description  Button drücken
// @author       rEGoSCH
// @version      0.1
// @include       http*://freebitco.in/?op=home*
// @grant        none
// ==/UserScript==
document.addEventListener("DOMContentLoaded", function(event) {
    document.getElementById('main_deposit_button_top').click();
});
Da sollte man eigentlich sicher sein das die Seite vollständig geladen ist und dann erst der Button gedrückt wird.
Obwohl es bei Greasmonkey auch noch META einstellungen dafür gibt,aber die kenne ich gerade auch nicht mehr aus den Kopf.

Falls mal wieder was ist mit Greasemonkey dann sag bescheid.Habe damals da auch viel Scripte gemacht für Online spiele und so.

Könnte ich vieleicht auch mal wieder machen:)
 
Oben