在 selenium iframe 元素上触发 JavaScript 自定义事件,因为send_keys输入值不会持久化



试图在 iframe 中存在的元素上触发 JavaScript 'change' 事件。下面是我的代码记录

// get the iframe window
var iframeDoc = document.getElementsByTagName("iframe")[0].contentWindow.document;
// get the target element
var targetElement = iframeDoc.querySelector("#some_id");
// add a listener to the target element to make sure the event is fired
targetElement.addEventListener("onchange", function(){console.log("change event triggered");});
// set value in the target element
targetElement.value = "abc";
// now build the custom event
var customEvent = iframeDoc.createEvent("HTMLEvents");
customEvent.intEvent("change", false, true);
// trigger the event on the element
targetElement.dispatchEvent(customEvent)
// now click on the save button

在最后一行执行后,我们没有收到任何错误,并在控制台中看到该消息。但是,当单击表单中的Save按钮时,硒输入的值不会保留。

技术堆栈: 爪哇, IE 11, 硒 3.141.59 禁用的本机事件

声明一个最小的可重现示例会有很大帮助(你说的是一些值,一些按钮和一些关于我们一无所知的形式(,

onchange是侦听change事件的 DOM 元素属性,则实际事件名称为change

希望这有帮助。

最新更新