Page 1 of 1

Ich kann den Wert im Eingangsfeld (Kreditkartenfeld) mit JavaScript nicht programmatisch festlegen - Setter funktioniert

Posted: 13 Apr 2025, 05:23
by Anonymous
Ich arbeite an einem Projekt mit Selenium (Python), in dem ich programmgesteuert ein Formular ausfüllen muss, das Kreditkarteneingabefelder enthält. Die Site verhindert jedoch Standard -JavaScript -Injektionsmethoden, indem sie Werte in diesen Eingängen einstellen.
< /code>
Und hier ist das JavaScript, das ich verwendet habe. Denken Sie daran, ich habe eine Reihe anderer JavaScript -Lösungen ausprobiert: < /p>
(() => {
const input = document.querySelector('input[aria-label="Name on card"]');
if (input) {
const setter = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set;
setter.call(input, 'Hello World');
input.dispatchEvent(new Event('input', { bubbles: true }));
input.dispatchEvent(new Event('change', { bubbles: true }));
}
})();
< /code>
Dies aktualisiert das Feld nicht wie erwartet. Es passiert jedoch etwas Seltsames: Wenn ich den DOM-Inspektor (Strg+Shift+C) aktiviere, klicken Sie auf das Element und führen dann denselben JavaScript-Snippet erneut aus, es funktioniert. Klicken Sie nur auf den Eingang normal oder zu versuchen, manuell zu tippen, hilft nicht. Nachahmt die echte Benutzereingabe nach?