如何使用XCUITest测试视图是否隐藏?视图有时是隐藏的(在Xcode中设置如下:Hidden view)
如何使用Swift在XCUITest中测试?就我而言,视图只是一个标签。我试过这样的事:XCTAssertFalse(app.staticTexts["pushNotificationInstruction"].accessibilityElementsHidden)
。但那不是它。 accessibilityElementsHidden与隐藏视图不同。感谢。
答案 0 :(得分:2)
不幸的是,目前使用XCUITest不可能。这是一个开发人员论坛帖子,Apple工程师建议为这个问题提交雷达:
https://forums.developer.apple.com/message/46271
我亲自提交了一些关于无法从XCUITest中访问UIViews的某些属性所带来的限制的雷达。我鼓励您这样做,并提供您因测试XCUITest缺陷而无法测试的方案的详细信息。
答案 1 :(得分:0)
您可以断言该视图不存在,并使用另一个测试来检查该场景何时存在。也许有点脆弱,但这将涵盖你的情况。
.directive('validacion', function ($timeout,$rootScope,validacionCampos,$compile) {
return {
restrict: 'AE',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
if (!ngModel){
console.log("no hay modal")
return;
}
答案 2 :(得分:0)
一个权宜之计的解决方案是在accessibilityidentifier。{/ p>中传递视图的可见性状态
在视图控制器中:
view.isHidden = hideView
view.accessibilityidentifier = "view1"+(hideView ? "hidden" : "")
在你的测试中:
XCTAssert(app.otherElements["view1"].exists)
或
XCTAssertFalse(app.otherElements["view1"].exists)
答案 3 :(得分:-1)
查看exist
的文档:
元素存在的事实并不意味着它是可命中的。 元素可以存在于屏幕外,也可以存在于屏幕上但被隐藏 另一个元素,导致其isHittable属性返回false。
这意味着您可以检查:
if uiElement.exists && uiElement.isHittable {
XCTFail()
}