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

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

Post 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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post