@@ -1808,25 +1808,31 @@ def Keystroke_For_Element(data_set):
18081808 # simple text paste
18091809 try :
18101810 if get_element :
1811- selenium_driver .execute_script (
1812- "arguments[0].focus();" , Element
1813- )
18141811 selenium_driver .execute_script (
18151812 """
1816- arguments[0].value = arguments[1];
1817- arguments[0].dispatchEvent(new Event('input', { bubbles: true }));
1818- arguments[0].dispatchEvent(new Event('change', { bubbles: true }));
1813+ var el = arguments[0];
1814+ var text = arguments[1];
1815+ var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
1816+ nativeInputValueSetter.call(el, text);
1817+ el.dispatchEvent(new Event('input', { bubbles: true }));
1818+ el.dispatchEvent(new Event('change', { bubbles: true }));
1819+ el.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true }));
1820+ el.dispatchEvent(new KeyboardEvent('keyup', { bubbles: true }));
18191821 """ ,
18201822 Element ,
18211823 pyperclip .paste (),
18221824 )
18231825 else :
18241826 selenium_driver .execute_script (
18251827 """
1828+ var el = document.activeElement;
18261829 var text = arguments[0];
1827- document.activeElement.value += text;
1828- document.activeElement.dispatchEvent(new Event('input', { bubbles: true }));
1829- document.activeElement.dispatchEvent(new Event('change', { bubbles: true }));
1830+ var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
1831+ nativeInputValueSetter.call(el, text);
1832+ el.dispatchEvent(new Event('input', { bubbles: true }));
1833+ el.dispatchEvent(new Event('change', { bubbles: true }));
1834+ el.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true }));
1835+ el.dispatchEvent(new KeyboardEvent('keyup', { bubbles: true }));
18301836 """ ,
18311837 pyperclip .paste (),
18321838 )
0 commit comments