我有一个输入字段,我们需要在其中输入一些值,但是该输入字段将使用货币值进行更新,但是当我自动将填充的值设置为空后,单击另一个元素后,该值就会更新。我该如何解决?
我已附上我的应用程序的屏幕截图:
下面是我正在使用的代码:
jse.executeScript("document.getElementById('Amount1').setAttribute('value', '20')");
即使我尝试使用TAB键事件,但仍然存在相同的行为。
尝试使用以下功能触发onchange
或相关事件。
public static void jsTriggerEventOnElement(WebDriver driver, WebElement element, String eventName) {
String jsFunction = " var genericEvent = document.createEvent ('Event'); clickEvent.initEvent ('" + eventName + "', true, true); arguments [0].dispatchEvent (genericEvent); ";
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(jsFunction, element);
}
您可以在字段中输入值后,使用下面的代码行触发事件。
// enter the value using the normal send_keys/js
// now call the jsTriggerEventOnElement method, here we are triggering the onchange event
// please change the event based the associated event
jsTriggerEventOnElement(driver, element, 'onchange`)
请参考此post,这将使您有一个发现相关事件的想法。但是,您始终可以尝试将onchange
作为第一次检查。
编辑
尝试以下操作。
public static void jsTriggerEventOnElement(WebDriver driver, WebElement element, String eventName) {
String jsFunction = " var clickEvent = document.createEvent ('Event'); clickEvent.initEvent ('" + eventName + "', true, true); arguments [0].dispatchEvent (clickEvent); ";
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(jsFunction, element);
}
jsTriggerEventOnElement(driver,element, 'onblur');