2

我目前正在自动化我的 iOS 应用程序。我目前面临的是对我的子视图进行分组以便将它们与其他视图分开的问题。好的,要清楚,这就是我所拥有的:

  • 自定义视图容器 - MyContainerView1
  • -MyUIImageView
  • -MyUITextField
  • -MyUIButton

  • 自定义视图容器 - MyContainerView2

  • -MyUIImageView
  • -MyUITextField
  • -MyUIButton

好的,在自动化过程中,我希望能够访问所有子视图(包括 MyUIImageView、MyUITextField、MyUIButton)。为此,我必须将它们全部设置为 UIAccessibilityEnabled = YES,设置标签并设置所有 MyContainerView 实例的 UIAccessibilityEnabled = NO。

好的,但是当我记录元素树时,子视图没有分组(因为 MyContainerView 的可访问性被禁用,所以我无法获取组:

  • -MyUIImageView
  • -MyUITextField
  • -MyUIButton

并将其作为一个整体对象使用(获取它的 imageView、它的 textField、检查它们的属性等)。

相反,我得到了这个:

  • -MyUIImageView
  • -MyUITextField
  • -MyUIButton
  • -MyUIImageView
  • -MyUITextField
  • -MyUIButton

这样我不知道哪个MyUIImageView属于哪个MyContainerView,所以我无法将它们分组。

所以,我的问题是如何将它们分组以使它们自动化?

4

1 回答 1

1

您没有正确设置容器视图的可访问性属性,因为这会弄乱其中的元素。

为什么需要分组?如果你使用window.elements().withName('MyUIButton'),你会得到一个包含所有名为 MyUiButton 的元素的数组。window.elements().withName('MyUIButton')[0]第一种观点的观点也是如此,第二种观点的观点也将window.elements().withName('MyUIButton')[1]如此。

也许不如分组好,但这确实是在测试内部,而不是在真实代码内部。如果您确实需要一些分组解决方案,您可以更改元素运行时的可访问性属性,为视图的所有子元素添加前缀。类似于 view1_MyUiButton 和 view2_MyUiButton。

于 2013-03-23T20:53:11.507 回答