测试是否使用XCUITest隐藏UIView

时间:2016-06-29 20:48:16

标签: ios swift uiview hidden xcode-ui-testing

如何使用XCUITest测试视图是否隐藏?视图有时是隐藏的(在Xcode中设置如下:Hidden view) 如何使用Swift在XCUITest中测试?就我而言,视图只是一个标签。我试过这样的事:XCTAssertFalse(app.staticTexts["pushNotificationInstruction"].accessibilityElementsHidden)。但那不是它。 accessibilityElementsHidden与隐藏视图不同。感谢。

4 个答案:

答案 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()
}