From 77a38298f6f6e1ed17da3bfaf03f5131e671ca96 Mon Sep 17 00:00:00 2001 From: artemave Date: Mon, 17 Jun 2019 16:25:33 +0200 Subject: [PATCH] Fix typeIn not working in React --- lib/sendkeys.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/sendkeys.js b/lib/sendkeys.js index fa41405..82022a7 100644 --- a/lib/sendkeys.js +++ b/lib/sendkeys.js @@ -9,17 +9,31 @@ function sendkey (el, char) { dispatchEvent(el, 'keyup', char) } +function setElementValue (el, value) { + if (typeof el.get === 'function') { // skip in VDOM + var element = el.get(0) + var nativeInputValueSetter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(element), 'value').set + if (nativeInputValueSetter) { + nativeInputValueSetter.call(element, value) + } else { + element.value = value + } + } else { + el.val(value) + } +} + function sendkeys (el, text) { var originalValue = el.val() if (text.length === 0) { - el.val('') + setElementValue(el, '') sendkey(el, '') } else { for (var n = 0; n < text.length; ++n) { var char = text[n] var value = text.substring(0, n + 1) - el.val(value) + setElementValue(el, value) sendkey(el, char) } }