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?
Ich kann den Wert im Eingangsfeld (Kreditkartenfeld) mit JavaScript nicht programmatisch festlegen - Setter funktioniert ⇐ JavaScript
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Wie kann ich mit einem Setter in Python auf eine Wörterbuchmobilie zugreifen?
by Anonymous » » in Python - 0 Replies
- 4 Views
-
Last post by Anonymous
-