Попробуйте вызвать 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`)
Пожалуйста, обратитесь к этой записи , которая даст вам представление о связанных событиях. Но вы всегда можете попробовать 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');