有没有办法检查OPA-Testing是否存在不的元素?
例如测试成功,如果没有执行waitFor#success回调并且会显示错误消息?
我有一个用例,根据非常重要的模型属性显示或不显示按钮。我想在每次使用OPA测试的部署中检查这一点。
button属性绑定为可见,如果属性为false,则该按钮不会出现在DOM中,因此无法检查其状态。
答案 0 :(得分:1)
您可以使用PropertyStrictEqual matcer作为
有一个例子:
// Check if the control is not visible
iShouldNotSeeTheControl: function (sControlId, sViewName) {
return this.waitFor({
id: sControlId,
viewName: sViewName,
visible: false,
matchers: new PropertyStrictEquals({
name : "visible",
value : false}),
success: function () {
Opa5.assert.ok(true, "The control (" + sControlId + ") is not visible");
},
errorMessage: "Did not find the hidden control: " + sControlId
});
},
答案 1 :(得分:1)
例如,如果从未使用SAPUI5的管理器创建控件或将其从SAPUI5的管理器中拆除或完全删除,则可以执行以下操作:
oMyControl.destroy()
注意以下详细信息:
仅将theControlShouldNotBeThere: function(sControlId) {
return this.waitFor({
success: function() {
var bExists = (Opa5.getJQuery()("#" + sControlId).length > 0);
Opa5.assert.ok(!bExists, "Control doesn't exist");
}
});
}
与waitFor
回调一起使用,以确保OPA将该断言放在要执行的其他步骤的队列的末尾。否则,代码将作为OPA测试中的第一步执行。这是described as a best practice in OPA5's Cookbook。
Opa5.getJQuery
method返回运行测试应用的iFrame中的jQuery对象 。 success
或$
将解决运行OPA环境的周围窗口的jQuery对象,该对象无法识别所请求的控件。
.length
is jQuery's preferred way of validating whether a selection is empty。