我有一个SAPUI5应用程序,其中控制器对sap.m.Input
的{{3}}和livechange
事件作出反应。
如何在OPA5测试中触发这些事件?在演示应用程序中,我找不到任何示例。
到目前为止,我的代码使用change
:
return this.waitFor({
id: "id_of_input_control",
success: function (control) {
control.$().children("input")
.focus()
.val("test")
.change()
.blur();
},
errorMessage: "Failed to find PLB input field"
});
这会触发change
,但不会触发livechange
事件。
知道如何以正确的顺序触发两者吗?
答案 0 :(得分:1)
使用这样的“动作”会更简单:
When.waitFor({
id: "myInput",
// If you want you can provide multiple actions
actions: new EnterText({ text: "Hello " }))
});
答案 1 :(得分:0)
我提出了以下帮助函数:
/**
*
* @param {sap.ui.core.Control} oControl - The UI5 control on which to enter input, usually sap.m.Input
* @param {string} sValue - The text to set
* @param {boolean} [bDontBlur] - Avoid defocusing the control after text entry, which may be
* useful in non-modal popovers. Defaults to false.
*/
function processInputOnControl(oControl, sValue, bDontBlur) {
oControl = oControl[0] || oControl;
oControl = oControl.$().children("input");
oControl.focus()
.val(sValue)
.trigger("input")
.change();
if (!bDontBlur) { // Blur event may close non-modal popovers, so it is optional
oControl.blur();
}
}